|
在
第一個JSF程序
首先我們修改一下UserBean:
UserBean.java
package
onlyfun.caterpillar;
public
class UserBean {
private
String
name;
private
String
password;
private
String
errMessage;
public
void setName(
String
name) {
this
.name = name;
}
public
String
getName() {
return
name;
}
public
void setPassword(
String
password) {
this
.password = password;
}
public
String
getPassword() {
return
password;
}
public
void setErrMessage(
String
errMessage) {
this
.errMessage = errMessage;
}
public
String
getErrMessage() {
return
errMessage;
}
public
String
verify() {
if
(!name.equals(
"justin"
) ||
!password.equals(
"123456"
)) {
errMessage =
"名稱或密碼錯誤"
;
return
"failure"
;
}
else
{
return
"success"
;
}
}
}
在UserBean中,我們增加了密碼與錯誤訊息屬性,在verify()方法中,我們檢查使用者名稱與密碼,它傳回一個字符串,"failure"表示登入錯誤,并會設定錯誤訊息,而"success"表示登入正確,這個傳回的字符串將決定頁面的流程。 接下來我們修改一下 faces-config.xml 中的頁面流程定義:
faces-config.xml
<?xml version=
"1.0"
?>
<!DOCTYPE faces-config PUBLIC
"-
//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN"
"http:
//java.sun.com/dtd/web-facesconfig_1_0.dtd"
>
<faces-config>
<navigation-rule>
<from-view-id>/pages/index.jsp</from-view-id>
<navigation-
case
>
<from-outcome>success</from-outcome>
<to-view-id>/pages/welcome.jsp</to-view-id>
</navigation-
case
>
<navigation-
case
>
<from-outcome>failure</from-outcome>
<to-view-id>/pages/index.jsp</to-view-id>
</navigation-
case
>
</navigation-rule>
<managed-bean>
<managed-bean-name>user</managed-bean-name>
<managed-bean-class>
onlyfun.caterpillar.UserBean
</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
</faces-config>
根據上面的定義,當傳回的字符串是"success"時,將前往 welcome.jsp,如果是"failure"的話,將送回 index.jsp。 接下來告訴網頁設計人員Bean名稱與相關屬性,以及決定頁面流程的verify名稱,我們修改 index.jsp 如下:
index.jsp
<%@ taglib uri=
"http:
//java.sun.com/jsf/core"
prefix="f" %>
<%@ taglib uri=
"http:
//java.sun.com/jsf/html"
prefix="h" %>
<%@page contentType=
"text/html;charset=Big5"
%>
<html>
<head>
<title>第一個JSF程序</title>
</head>
<body>
<f:view>
<h:form>
<h3>請輸入您的名稱</h3>
<h:outputText value=
"#{user.errMessage}"
/><p>
名稱: <h:inputText value=
"#{user.name}"
/><p>
密碼: <h:inputSecret value=
"#{user.password}"
/><p>
<h:commandButton value=
"送出"
action=
"#{user.verify}"
/>
</h:form>
</f:view>
</body>
</html>
當要根據verify運行結果來決定頁面流程時,action屬性中使用 JSF Expression Language "#{user.verify}",如此JSF就知道必須根據verify傳回的結果來導航頁面。 <h:outputText>可以取出指定的Bean之屬性值,當使用者因驗證錯誤而被送回原頁面時,這個錯誤訊息就可以顯示在頁面上。 |
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

