简单的导航 Navigation

系统 1570 0
第一个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之属性值,当使用者因验证错误而被送回原页面时,这个错误讯息就可以显示在页面上。

简单的导航 Navigation


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论