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

jsf-導航規則設置

    博客分类:
  • JSF
阅读更多
在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>
....

 

或者是這樣:
 
....
<navigation-rule>
<from-view-id>*</from-view-id>
<navigation-case>
....
</navigation-rule>
....


分享到:
评论

相关推荐

    jsf-api.jar

    8. **Navigation**: JSF提供了导航规则,允许根据用户的动作或验证结果决定跳转到哪个页面。 9. **FacesServlet**: 这是JSF应用的核心Servlet,负责处理所有的JSF请求,并调用相应的生命周期阶段。 使用`jsf-api....

    jsf-api.jar.zip

    8. **Navigation**:JSF支持基于规则的导航,可以根据用户操作和业务逻辑决定页面跳转。 **license.txt** 文件通常包含软件的许可协议,对于`jsf-api.jar`来说,这可能指定了使用、修改和分发JSF API库的法律条款。...

    jsf-api-1.2

    在JSF 1.2中,导航规则通常定义在faces-config.xml配置文件中。 **国际化和本地化** 支持是JSF 1.2的一个重要特性,允许开发者创建多语言的应用程序。资源包可以用来存储特定语言的文本和值,JSF可以根据用户的...

    JSF-Java-jar包

    - `javax.faces.application.Application`:负责管理组件树、转换和验证规则、导航规则等。 - `javax.faces.component.UIComponent`:表示JSF组件树中的一个节点,是所有JSF组件的基类。 - `javax.faces.context....

    jsf-html.zip

    5. 配置文件:可能包含JSF配置文件(faces-config.xml)或其他Web应用配置,用于设置组件、导航规则等。 6. 项目结构:可能有一个完整的Maven或Gradle项目的结构,便于用户直接导入开发环境进行学习和实践。 学习...

    JSF2.0-hello-world-example-2.1.7.zip

    - **faces-config.xml**:JSF的配置文件,可以定义导航规则、组件和转换/验证规则等。 - **index.xhtml**:Facelets页面,通常包含“Hello World”消息的展示。可能有一个简单的表单,用户可以提交,然后在服务器端...

    JSF-2-Hello-World-Example.zip

    1. ** faces-config.xml**:JSF配置文件,定义组件、导航规则和其他配置信息。 2. **web.xml**:Web应用程序部署描述符,配置JSF的初始化参数和Servlet映射。 3. **index.xhtml**:示例的主页面,可能包含一个简单的...

    jsf-jumpstarter.pdf

    #### 三、JSF导航机制 ##### 3.1 Conversion Results Page Managed Bean * **功能**: 处理业务逻辑,计算并返回转换结果。 * **方法**: 实现数据验证、转换逻辑等。 ##### 3.2 Implementing the Results JSF Page *...

    jsf-1-1:第一个jsf

    JSF应用的配置通常在`faces-config.xml`文件中进行,包括组件注册、导航规则和事件监听器的定义。这个配置文件是JSF应用的核心配置,定义了应用的行为和组件间的交互。 **八、JSF 1.1的局限性和改进** JSF 1.1虽是...

    jsf-tutorial.rar_jsf PPT

    8. **导航和重定向**:JSF允许在应用程序中定义导航规则,根据用户操作和验证结果决定跳转到哪个页面。这可以通过faces-config.xml配置文件或在动作方法中动态控制。 9. **Ajax支持**:JSF 2.0引入了Partial State ...

    JSF API 2.1.2

    4. **导航系统**:导航规则的定义更加直观和可维护,支持动态导航决策。 5. **错误处理和验证**:JSF提供了强大的验证框架,可以在不同生命周期阶段进行验证,并且有完善的错误处理机制。 在压缩包中,有两个重要...

    JSF- Mastering JavaServer Faces.zip

    5. ** faces-config.xml**:这是JSF的配置文件,用来定义导航规则、组件、转换器和验证器等,使得配置更加灵活和可扩展。 6. **Facelets**:JSF 2.0引入了Facelets作为默认视图层技术,它是一种XML-based模板语言,...

    JSF API

    当用户执行操作(如提交表单)时,JSF会根据预定义的导航规则决定跳转到哪个页面。这允许开发者根据业务逻辑控制用户流程。 6. **EL表达式语言** JSF与Java Expression Language (EL)紧密集成,EL用于在JSF页面中...

    JSF-Info

    JSF应用通常使用`faces-config.xml`文件定义导航规则,其中包含基于用户操作或特定条件的页面跳转逻辑。 **2. 表达式语言(EL)(04-Expression-Language.pdf)** JSF集成了一种称为表达式语言(EL)的简洁语法,...

    JSF1.2的jar包

    10. **FacesConfig.xml**:JSF的配置文件,定义了应用的组件、导航规则、Managed Beans等信息。 在"JSF-1.2_09-b02-FCS"这个压缩包中,我们可以找到JSF 1.2的实现库。这些jar文件包含了JSF框架的实现,开发者可以将...

    JSF编程实战导航-随书源代码

    1. **JSF配置文件**:如`faces-config.xml`,用于定义应用程序的组件、导航规则和监听器。在这里,你可以看到如何配置JSF组件的行为和生命周期。 2. **JSP/JSF页面**:这些是实际的用户界面,包含JSF组件声明。例如...

    JSF导航文件如何设置实例解析 .rar

    本教程将深入探讨如何设置JSF导航文件,并通过实例解析其工作原理。 首先,我们需要了解导航文件的结构。一个典型的JSF导航文件通常以`.faces-config.xml`为扩展名,位于项目的`WEB-INF`目录下。这个文件包含了多个...

    jsf介绍和例子

    3. ** faces-config.xml** - 这是JSF应用的核心配置文件,用于定义导航规则、组件、转换器和验证器等。 4. ** Managed Beans** - JSF 中的主要业务对象,用于存储和管理应用程序的业务逻辑和状态。 5. **EL...

    jsf-framework-small-project

    - `faces-config.xml`是JSF的配置文件,用于定义导航规则、组件行为、应用范围等。 在这个"jsf-framework-small-project"中,开发者可能已经实现了上述的一些概念,通过Facelets页面构建用户界面,使用Managed ...

Global site tag (gtag.js) - Google Analytics