快速业务通道

JSF 1.2入门,第1部分 构建基本应用程序 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
aces-config.xml 中定义的导航规则

<navigation-rule>    <navigation-case>      <from-outcome>CALCULATOR</from-outcome>      <to-view-id>/pages/calculator.jsp</to-view-id>    </navigation-case> </navigation-rule>

清单 38 声明,返回 CALCULATOR 的任何动作将导致 JSF 装载 /pages/calculator.jsp 作为下一个 视图。这个规则是全局的,也就是说,如果在应用程序中任何地方的任何动作返回了 CALCULATOR,就会 进入 /pages/calculator.jsp(除非应用了更特定的规则 — 在 JSF 中,可以添加 <from-view- id>,让规则只应用于这个视图;本节后面会讨论更特定的规则。)清单 38 与 Struts 中的全局转发 相似。

JSF 1.2入门,第1部分 构建基本应用程序(19)

时间:2011-08-09 IBM Richard Hightower

然后,添加清单 39 所示的 commandLink,它必须放在 <h:form> 中:

清单 39. 在主页中使用 commandLink

<h:form>    <h:panelGrid columns="1">    <h:commandLink action="CALCULATOR" value="Calculator Application"/>      ...

这可以实现所需的效果:在浏览器中装载 Calculator 应用程序。但是,尽管显示了计算器视图,而 浏览器中的 URL 仍然是 http://localhost:8080/calculator3/home.jsf,这可能让用户觉得困惑。这可 能使用户很不安,尤其是熟悉 Web 的用户。另外,用户可能希望用应用程序的计算器部分设置书签,但 是他们不知道真正的 URL。

纠正这个问题的一种方法是在 faces-config.xml 导航规则中使用 redirect,见清单 40:

清单 40. 包含 redirect 元素的导航规则

<navigation-rule>    <navigation-case>      <from-outcome>CALCULATOR_REDIRECT</from-outcome>      <to-view-id>/pages/calculator.jsp</to-view-id>      <redirect/>      <!-- LOOK HERE -->    </navigation-case> </navigation-rule>

commandLink 使用这个导航规则的方法是指定结果字符串作为 action 属性。当用户单击清单 41 中 的链接时,用户会进入计算器页面:

清单 41. 使用包含 redirect 元素的导航规则

<h:commandLink action="CALCULATOR_REDIRECT" value="Calculator Application (redirect)"/>

这解决了上述问题,但是增加了一次服务器访问,这在慢速连接上可能要花费较长时间。但是,如果 正在构建内部应用程序,那么这次访问花不了多长时间。

如果不介意直接链接要装载的页面,就不需要两次访问服务器,见清单 42:

清单 42. 用 outputLink 直接链接

<h:outputLink value="pages/calculator.jsf">    <h:outputText value="Calculator Application (outputlink)"/> </h:outputLink>

清单 42 直接链接下一个视图。在 Model 2 体系结构和 JSF 中,从一个视图直接链接下一个视图被 认为是一种不好的做法。在通常情况下,控制器应该有机会为下一个视图初始化模型,所以更好的方法是 通过动作方法。但是,清单 42 确实创建了一个链接,而且在浏览器中会显示正确的 URL。

无法给 JSF 应用程序加书签一直是个问题。几个框架解决了这个问题,包括 JBoss Seam。JSF 2 也 将解决这个小问题。

导航到结果页面

在计算器页面中执行计算之后,下一个视图应该是结果页面。为此,需要添加清单 43 中的导航规则 :

清单 43. 从计算器视图中所有动作到结果页面的导航规则

<navigation-rule>    <display-name&

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号