`

jsf-1-3:导航规则设置

    博客分类:
  • 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-1-1:第一个jsf

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

    JSF-Java-jar包

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

    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可以根据用户的...

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

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

    definitive-guide-to-jsf-in-javaee8:Java EE 8中的JSF权威指南的源代码-java source code

    1. **JSF配置文件**:如faces-config.xml,定义了组件、导航规则等。 2. **视图资源**:HTML或XHTML页面,通常带有JSF组件标签,如.xhtml文件。 3. **后台Bean**:实现了业务逻辑的Java类,通常标记为@ManagedBean和...

    jsf-html.zip

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

    JSF-2-Hello-World-Example.zip

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

    JSF API 2.1.2

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

    seam jsf ejb 资源相关连部分

    - 示例中给出的`face-config.xml`配置示例展示了如何定义导航规则,例如从一个视图跳转到另一个视图。 通过以上介绍,我们可以看出JSF是一种非常强大且灵活的Web应用框架,它与Seam和EJB结合使用时,可以构建出功能...

    jsf-jumpstarter.pdf

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

    北大青鸟-JSF标签

    1. **导航规则**: - 导航规则定义了应用程序中页面间的跳转逻辑。在JSF中,导航规则可以是静态的或动态的。静态导航是预定义的,点击特定按钮总是跳转到固定页面。这通过`from-view-id`和`navigation-case`元素...

    Beginning JavaEE 7

    - **导航规则:**讲解了如何设置导航规则以实现页面跳转。 ##### 2.12 第12章:XML与JSON处理 - **XML处理:**介绍了如何使用Java API for XML Processing (JAXP)和Java API for XML Web Services (JAX-WS)处理XML...

    jsf-tutorial.rar_jsf PPT

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

    richfaces参考手册

    - **操作与导航:** 定义了如何处理用户的操作及页面间的导航。 - **JavaScript交互:** 如何与JavaScript代码协同工作。 - **迭代组件Ajax属性:** 特定于迭代组件的Ajax属性。 - **常用Ajax属性:** 常用的Ajax...

    JSF- Mastering JavaServer Faces.zip

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

    JSF指南

    导航规则定义了用户在不同页面之间移动的逻辑。通过本课程,你将了解到如何在JSF中设置导航流程,实现页面间的跳转和过渡。 - **课程2.4:使用自动键生成** 自动键生成可以大大简化数据库记录的管理。你将学习...

Global site tag (gtag.js) - Google Analytics