jwebee

          jwebee

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            11 Posts :: 0 Stories :: 0 Comments :: 0 Trackbacks
          第一個JSF程式 中,我們簡單的定義了頁面的流程由 index.jsp 到 welcome.jsp,接下來我們擴充程式,讓它可以根據使用者輸入的名稱與密碼是否正確,決定要顯示歡迎訊息或是將使用者送回原頁面進行重新登入。

           

          首先我們修改一下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之屬性值,當使用者因驗證錯誤而被送回原頁面時,這個錯誤訊息就可以顯示在頁面上。


          周行 2008-05-22 12:35 發表評論

          文章來源:http://www.aygfsteel.com/zhouxing/archive/2008/05/22/SimpleNavigation.html
          posted on 2008-05-22 12:35 jwebee 閱讀(138) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 绥芬河市| 广水市| 柳河县| 泰和县| 利川市| 绥棱县| 巴中市| 朝阳县| 微博| 韶山市| 剑阁县| 岢岚县| 洛阳市| 宝兴县| 阜康市| 博野县| 永福县| 淄博市| 新津县| 永川市| 龙岩市| 普兰店市| 四子王旗| 怀来县| 会理县| 新宁县| 安溪县| 长治市| 广南县| 绿春县| 来安县| 元谋县| 公主岭市| 白城市| 德保县| 安国市| 拜泉县| 鹤山市| 加查县| 本溪| 济宁市|