在
第一個(gè)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 = "名稱或密碼錯(cuò)誤" ; return "failure" ; } else { return "success" ; } } } 在UserBean中,我們?cè)黾恿嗣艽a與錯(cuò)誤訊息屬性,在verify()方法中,我們檢查使用者名稱與密碼,它傳回一個(gè)字符串,"failure"表示登入錯(cuò)誤,并會(huì)設(shè)定錯(cuò)誤訊息,而"success"表示登入正確,這個(gè)傳回的字符串將決定頁(yè)面的流程。 接下來(lái)我們修改一下 faces-config.xml 中的頁(yè)面流程定義:
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> 根據(jù)上面的定義,當(dāng)傳回的字符串是"success"時(shí),將前往 welcome.jsp,如果是"failure"的話,將送回 index.jsp。 接下來(lái)告訴網(wǎng)頁(yè)設(shè)計(jì)人員Bean名稱與相關(guān)屬性,以及決定頁(yè)面流程的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>第一個(gè)JSF程序</title> </head> <body> <f:view> <h:form> <h3>請(qǐng)輸入您的名稱</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> 當(dāng)要根據(jù)verify運(yùn)行結(jié)果來(lái)決定頁(yè)面流程時(shí),action屬性中使用 JSF Expression Language "#{user.verify}",如此JSF就知道必須根據(jù)verify傳回的結(jié)果來(lái)導(dǎo)航頁(yè)面。 <h:outputText>可以取出指定的Bean之屬性值,當(dāng)使用者因驗(yàn)證錯(cuò)誤而被送回原頁(yè)面時(shí),這個(gè)錯(cuò)誤訊息就可以顯示在頁(yè)面上。 |
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
