本文转载自:
http://www.javaworld.com.tw/confluence/pages/viewpage.action?pageId=2630
在JSF中是根据faces-config.xml中<navigation-rule>设定,以决定在符合的条件成立时,该连结至哪一个页面,一个基本的设定如下:
<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>
对于JSF,每一个视图(View)都有一个独特的标识(identifier),称之为View ID
,在JSF中的View ID是从Web应用程序的环境相对路径开始计算,设定时都是以/作为开头,如果您请求时的路径是/pages/index.faces,则JSF会将副文件名改为/pages/index.jsp,以此作为view-id。
在<navigation-rule>中的<from-view-id>是个选择性的定义,它规定了来源页面的条件,<navigation-case>中定义各种导览条件,<from-outcome>定义当表单结果符合的条件时,各自改导向哪一个目的页面,目的页面是在<to-view-id>中定义。
您还可以在<navigation-case>中加入<from-action>,进一步规范表单结果必须根据哪一个动作方法(action method),当中是使用 JSF Expression Language 来设定,例如:
<navigation-rule>
<from-view-id>/pages/index.jsp</from-view-id>
<navigation-case>
<from-action>#{user.verify}</from-action>
<from-outcome>success</from-outcome>
<to-view-id>/pages/welcome.jsp</to-view-id>
</navigation-case>
....
</navigation-rule>
在导航时,预定义都是使用forward的方式,您可以在<navigation-case>中加入一个<redirect/>
,让JSF发出让浏览器重新导向(redirect)的header,让浏览器主动要求新网页,例如:
<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>
<redirect/>
</navigation-case>
....
</navigation-rule>
您的来源网页可能是某个特定模组
,例如在/admin/下的页面,您可以在<from-view-id>中使用wildcards(通配符),也就是使用 * 字符,例如:
<navigation-rule>
<from-view-id>/admin/*</from-view-id>
<navigation-case>
<from-action>#{user.verify}</from-action>
<from-outcome>success</from-outcome>
<to-view-id>/pages/welcome.jsp</to-view-id>
</navigation-case>
....
</navigation-rule>
在上面的设定中,只要来源网页是从/admin来的,都可以开始测试接下来的<navigation-case>。
<from-view-id>如果没有设定,表示来源网页不作限制,您也可以使用 * 显式的在定义文件中表明,例如:
<navigation-rule>
<from-view-id>/*</from-view-id>
<navigation-case>
....
</navigation-rule>
分享到:
相关推荐
### JSF入门知识点详解 #### 一、JSF概述 **1.1 简介JSF** JavaServer Faces (JSF) 是一种基于Java的标准技术,用于构建企业级Web应用。JSF的设计目的是简化Web应用程序的开发过程,通过封装HTTP协议的复杂性,...
1. JSF入门 JSF的基础在于它的组件模型,这些组件可以直接映射到HTML元素,并且可以处理用户的输入。JSF提供了丰富的UI组件库,如按钮、表单、文本框等,开发者可以通过声明式的方式在页面上使用这些组件。 开发...
#### 1.4 导航规则设置 在`faces-config.xml`文件中,你可以定义导航规则集,包括源视图ID、目标视图ID以及在何时何地进行导航的条件。这样,JSF可以根据用户的动作执行相应的导航逻辑。 #### 1.5 JSF Expression ...
JSF支持基于导航规则的视图跳转。你可以定义一个导航案例,根据不同的动作结果跳转到相应的页面。 **9. JSF与AJAX** JSF 2.0引入了Partial State Saving和Ajax支持,允许部分刷新页面,提高用户体验。`p:...
1.4 导航规则设置 JSF框架提供了一个可配置的导航规则机制,允许开发者定义页面之间的导航关系。JSF框架提供了以下几种导航规则: * 视图导航规则:允许开发者定义视图之间的导航关系。 * 操作导航规则:允许...
在上述的JSF入门例子中,我们首先看到的是`UserBean.java`,这是个简单的实体类,模拟了用户登录的情景。它包含了用户名`name`、密码`password`以及错误消息`errMessage`等属性,并提供了相应的getter和setter方法。...
4. 配置导航规则,定义用户操作后的页面跳转。 5. 在服务器上部署并运行项目,通过浏览器访问JSF页面。 **资源和学习材料** 对于初学者来说,"JSF入门实例代码" 提供了一个很好的起点。这个资源可能包含了一些基础...
对于初学者,可以通过阅读《JSF入门》这样的书籍或在线教程,快速掌握JSF的基本用法和概念。同时,社区如Stack Overflow、Java EE官方文档以及各种开源项目,都是学习JSF的好去处。 总结,JSF作为Java EE的重要组成...
"JSF入门文档"很可能是包含JSF基础教程、组件使用示例、配置指南等内容的资源集合,可以帮助初学者快速掌握JSF的基本概念和用法。文档可能包括以下部分: 1. JSF简介:介绍JSF的历史、目标和基本原理。 2. 安装与...
- 配置和应用导航规则; - 使用JSF表达式语言; - 应用国际化信息。 3. Managed Beans JSF中的Managed Beans是指与JSF生命周期管理相结合的JavaBeans。它们可以作为backing beans,用于保存用户界面组件的状态和...
1.1 简介 JSF 1.2 第一个 JSF 程序 1.3 简单的导航 Navigation 1.4 导航规则设置 1.5 JSF Expression Language 1.6 国际化信息 2. Managed Beans
5. **导航和页面跳转**:说明如何配置导航规则,控制用户在不同页面间跳转。 6. **事件处理**:解释如何注册监听器,响应用户触发的事件,并在后台执行相应操作。 7. **错误和验证**:介绍JSF的内置验证机制,以及...
5. **配置文件**:"Faces Config"(faces-config.xml)是JSF应用的核心配置文件,它定义了组件、导航规则、Managed Beans等。在"JsfDemo"中,你会看到如何配置这些元素。 6. **依赖的JAR包**:JSF库通常包含多个JAR...
总的来说,"JSF入门全系列"涵盖了JSF框架的各个方面,旨在帮助初学者快速理解和掌握JSF,通过实践案例让你在Web开发的道路上稳步前行。无论你是Java新手还是有一定经验的开发者,这个系列都将为你提供宝贵的指导。...