Seam - 无缝集成JSF,第2部分: 借助Seam进行对话 - 编程入门网
清单 9. 添加命令链接以选择课程
向提供数据选择的支持 bean 添加的内容主要是注释;放到 conversation 作用域时,必须将该类序列化。 清单 10. 用于捕获所选课程的 DataModelSelection 注释
Seam - 无缝集成JSF,第2部分: 借助Seam进行对话(8)时间:2011-06-25 IBM Dan Allen对话的优点 在 清单 10 中可以看出,所有变量作用域是由 Seam 处理的。当执行工厂方法来初始化课程集合时,Seam 遇到 @Begin 注释,因此将该临时对话提升为长期运行的对话。@DataModel 注释提取的变量采用其所有者组件的作用域。因此,在对话期间,该课程集合保持可用。当遇到标记着 @End 注释的方法时,对话结束。 单击某一行的课程名称时,Seam 使用支持该行的课程数据值填充带有 @DataModelSelection 注释的属性。然后触发操作方法 selectCourse(),导致在控制台上显示所选课程的名称。最后,重新显示课程列表。随后就会在控制台中看到:
借助 Seam,就不必在 faces-config.xml 中定义导航规则,即映射每个操作的返回值。取而代之,Seam 检查操作的返回值是不是有效的视图模板(技术上称之为视图 id),并对其执行动态导航。这项功能能够使简单的应用程序保持简单,还允许对更高级的用例使用声明式导航。请记住,在这个例子中,Seam 在执行导航时发出了重定向命令。 如果需要通过声明结束对话,则可以使用 @End(beforeRedirect=true) 注释操作方法 selectCourse(),在这种情况下,对话会在每次调用该方法后结束。beforeRedirect 属性确保在呈现下一个页面之前清除对话上下文中的变量,这样能使临时对话的工作短路,而在重定向时临时对话通常会填充这些值。在这个方案中,在每次选中课程时开始数据准备过程。执行完以上描述的同一事件序列之后,现在控制台将显示:
提取课程的详细内容 您尚未详细了解显示课程的用例。@DataModelSelection 注释负 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |