JSF 1.2入门,第1部分 构建基本应用程序 - 编程入门网
aces-config.xml 中定义的导航规则
清单 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
这可以实现所需的效果:在浏览器中装载 Calculator 应用程序。但是,尽管显示了计算器视图,而 浏览器中的 URL 仍然是 http://localhost:8080/calculator3/home.jsf,这可能让用户觉得困惑。这可 能使用户很不安,尤其是熟悉 Web 的用户。另外,用户可能希望用应用程序的计算器部分设置书签,但 是他们不知道真正的 URL。 纠正这个问题的一种方法是在 faces-config.xml 导航规则中使用 redirect,见清单 40: 清单 40. 包含 redirect 元素的导航规则
commandLink 使用这个导航规则的方法是指定结果字符串作为 action 属性。当用户单击清单 41 中 的链接时,用户会进入计算器页面: 清单 41. 使用包含 redirect 元素的导航规则
这解决了上述问题,但是增加了一次服务器访问,这在慢速连接上可能要花费较长时间。但是,如果 正在构建内部应用程序,那么这次访问花不了多长时间。 如果不介意直接链接要装载的页面,就不需要两次访问服务器,见清单 42: 清单 42. 用 outputLink 直接链接
清单 42 直接链接下一个视图。在 Model 2 体系结构和 JSF 中,从一个视图直接链接下一个视图被 认为是一种不好的做法。在通常情况下,控制器应该有机会为下一个视图初始化模型,所以更好的方法是 通过动作方法。但是,清单 42 确实创建了一个链接,而且在浏览器中会显示正确的 URL。 无法给 JSF 应用程序加书签一直是个问题。几个框架解决了这个问题,包括 JBoss Seam。JSF 2 也 将解决这个小问题。 导航到结果页面 在计算器页面中执行计算之后,下一个视图应该是结果页面。为此,需要添加清单 43 中的导航规则 : 清单 43. 从计算器视图中所有动作到结果页面的导航规则
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |