JSF笔记 – 导航模型 静态导航和动态导航
本文由发表于6年前 | J2EE | 暂无评论 |  被围观 5,031 views+
下面是一个简单的配置:
静态导航:
下面是一个使用静态导航的例子:
动态导航:

JSF的导航规则一般定义在faces-config-nav.xml配置文件中,当用户单击按钮、超链接时,JSF可以根据这种导航规则转到其他的页面。

下面通过一个配置示例来说明常用的配置标签:

<!-- 使用navigation-rule配置导航规则 -->
<navigation-rule>
    <!-- 可选,指定导航规则的起始页面
 如果没有指定,则意味着该导航规则可应用于应用中的所有页面 -->
    <from-view-id></from-view-id>
    <!-- 指定一系列条件(子标签),只有满足了这些条件时才会导航到目标页面 -->
    <navigation-case>
        <!-- 可选,指定来源于某个Bean的特定方法时才会导航到指定页面 -->
        <from-action></from-action>
        <!-- 可选,定义了一个逻辑结果
 当处理方法返回该逻辑结果时才会导航到指定页面 -->
        <from-outcome></from-outcome>
        <!-- 指定一个物理视图资源,表明要导航到哪个页面 -->
        <to-view-id></to-view-id>
        <!-- 使用该标签表明是采用重定向方式导航到指定页,而不是采用常规的ViewHandler机制进行导航 -->
        <redirect/>
    </navigation-case>
</navigation-rule>
下面是一个简单的配置:
<navigation-rule>
    <!-- 表明/login目录下的任何页面都可以作为起始页面 -->
    <from-view-id>/login/*</from-view-id>
    <navigation-case>
        <!-- 表明从User的login方法返回success时 -->
        <from-action>#{userBean.login }</from-action>
        <from-outcome>success</from-outcome>
        <!-- 满足上面条件时导航到/main.jsp -->
        <to-view-id>/main.jsp</to-view-id>
    </navigation-case>
    <navigation-case>
        <!-- 表明从User的login方法返回failure时 -->
        <from-action>#{userBean.login }</from-action>
        <from-outcome>failure</from-outcome>
        <!-- 满足上面条件时导航到/login.jsp -->
        <to-view-id>/login.jsp</to-view-id>
    </navigation-case>
</navigation-rule>
静态导航:

面中的commandButton标签的action属性并不是绑定到某个托管Bean的指定方法,而是直接给出一个静态的字符串。

编写静态导航需要开发者完成如下两件事:

1、 将commandButton或者commandLink标签的action属性指定为一个静态字符串
2、 在JSF配置文件中配置导航规则
下面是一个使用静态导航的例子:

login.jsp页面代码如下:

<f:view>
    <h3>用户登录</h3>
    <div><h:outputText value="#{login.error }" /></div>
    <h:form id="loginForm">
        用户名:<h:inputText value="#{login.username }"></h:inputText>
        密码:<h:inputText value="#{login.password }"></h:inputText>
        <h:commandButton action="success" value="登录"></h:commandButton>
    </h:form>
</f:view>

在导航规则配置文件中进行配置:

<from-view-id>/login.jsp</from-view-id>
        <navigation-case>
            <from-outcome>success</from-outcome>
            <to-view-id>/index.jsp</to-view-id>
        </navigation-case>
    </navigation-rule>

不管在login.jsp页面中输入什么信息,应用总是能够导航到index.jsp页面。

动态导航:

动态导航将commandButton或commandLink的action属性绑定到某个托管Bean的Action处理方法,使得超链接或者按钮被点击时,它所对应的托管Bean的Action处理方法将被调用,根据Action的返回值不同,应用可以动态地导航到不同的页面。

动态导航需要开发者完成两件事:

1、 将commandButton或commandLink标签的action属性绑定到某个托管Bean的处理方法
2、 在JSF配置文件中配置导航规则
除了文章中有特别说明,均为IT宅原创文章,转载请以链接形式注明出处。
本文链接:http://www.itzhai.com/jsf-notes-navigation-model-static-and-dynamic-navigation-navigation.html
关键字: ,
arthinking Java技术交流群:280755654,入门群:428693174 more
分享到:
 
2011 12/3
如果您有更好的原创技术博文或者观点,欢迎投稿:admin@itzhai.com,或者关注订阅左侧浮动面板的微信号订阅IT宅itread)发送消息。
文章评论
    没有评论
给我留言

有人回复时邮件通知我
J2EE的相关文章
随机文章 本月热门 热评
1 数据结构笔记 – 排序算法 直接插入排序算法 2011/9/20
2 任何不以学习知识为目的的考试都是耍流氓-软件工程导论试题 2011/7/4
3 计算机系统结构实用知识点问答题 2011/11/16
4 InvalidMappingException提示Could not parse mapping document错误的解决方法 2011/5/26
5 服务器返回错误error on line 1 at column 1: Document is empty 2012/5/6
6 8251A串行通信和8253计数器编程举例 2011/5/5
友情推荐 更多
破博客 文官洗碗安天下,武将打怪定乾坤。多么美好的年代,思之令人泪落。
Mr.5's Life 白天是一名程序员,晚上就是个有抱负的探索者
行知-追寻技术之美 关注大数据,分布式系统
我爱编程 编程成长轨迹
Cynthia's Blog 学习笔记 知识总结 思考感悟
 
猜您喜欢
欢迎关注我的公众号 IT宅
关于IT宅 文章归档

IT宅中的文章除了标题注明转载或有特别说明的文章,均为IT宅的技术知识总结,学习笔记或随笔。如果喜欢,请使用文章下面提供的分享组件。转载请注明出处并加入文章的原链接。 感谢大家的支持。

联系我们:admin@itzhai.com

Theme by arthinking. Copyright © 2011-2015 IT宅.com 保留所有权利.