`
zhouxing
  • 浏览: 199062 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

jsf-簡單的導航(Navigation)

    博客分类:
  • JSF
阅读更多
第一個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之屬性值,當使用者因驗證錯誤而被送回原頁面時,這個錯誤訊息就可以顯示在頁面上。
分享到:
评论

相关推荐

    JSF教程 中文版

    部分内容截取: 1. 入门 1.1 简介JSF 1.2 第一个JSF程序 1.3简单的导航 Navigation 1.4导航规则设置 1.5 JSF Expression Language 1.6国际化信息 ......

    JSF基础教程 简体中文

    o 简单的导航 Navigation o 导航规则设置 o JSF Expression Language o 国际化讯息 Managed Beans JSF 使用 Bean 来达到逻辑层与表现层分离的目的,Bean 的管理集中在组态档案中,您只要修改组态档案,就可以修改 ...

    JSF入门必看

    1.1 简介 JSF 1.2 第一个 JSF 程序 1.3 简单的导航 Navigation 1.4 导航规则设置 1.5 JSF Expression Language 1.6 国际化信息 2. Managed Beans

    JSF入门pdf

    1.3简单的导航 Navigation 1.4导航规则设置 1.5 JSF Expression Language 1.6国际化信息 2. Managed Beans 2.1 Backing Beans 2.2 Beans的配置与设定 2.3 Beans上的List, Map 3. 数据转换与验证 3.1 标准转换器 3.2...

    JavaServer Faces 2.0完全参考手册(JSF2.0中文版) 1/2

    按照JSF导航模型声明一个页面,包括新的“隐式导航”功能。使用用户界面组件模型和JSF事件模型,包括支持可添加书签的页面以及POST、REDIRECT、GET模式。使用为模型数据验证设立的新的JSR-303bean验证标准。创建可以...

    JSF1.2+EJB3.0实现的一个项目实例

    |--WebRoot |-- META-INF 打包的信息文件夹 |-- WEB-INF |-- faces-config.xml JSF的配置文件1,托管Bean的配置 |-- navigation.xml JSF的配置文件2,导航规则的配置 |-- web.xml web应用部署描述...

    JavaServer Faces 2.0完全参考手册(JSF2.0中文版).part1

    按照JSF导航模型声明一个页面,包括新的“隐式导航”功能。使用用户界面组件模型和JSF事件模型,包括支持可添加书签的页面以及POST、REDIRECT、GET模式。使用为模型数据验证设立的新的JSR-303bean验证标准。创建可以...

    java server face 教程

    o 简单的导航 Navigation o 导航规则设置 o JSF Expression Language o 国际化讯息 • Managed Beans JSF 使用 Bean 来达到逻辑层与表现层分离的目的,Bean 的管理集中在组态档 案中,您只要修改组态档案,就可以...

    Java.Server.Faces编程.part2

    JSF提供了一个基于组件的架构(框架)用于管理和构建Web应用程序接口,它也提供了丰富的功能集包含事件处理机制(Event Handling Mechanism)、页面导航(Page Navigation)、验证客户端数据(Input Validation)和...

    Java Server Faces编程.part1

    JSF提供了一个基于组件的架构(框架)用于管理和构建Web应用程序接口,它也提供了丰富的功能集包含事件处理机制(Event Handling Mechanism)、页面导航(Page Navigation)、验证客户端数据(Input Validation)和...

Global site tag (gtag.js) - Google Analytics