理解作用域和受管Bean - 编程入门网
t;navigation-case> 元素中包含 <redirect> 元素,您将不能使用 request bean 。(您可以在页面流编辑器中点击 XML 按钮来查看这些规则。)当页面被提交时, <redirect> 元素将重定向页面并在后面的页面能够使用任何存储于 Request Bean 中的值之前结束请求。
当您从 IDE 中创建一个页面时,页面 bean 的 Java 源代码中就包含了访问 RequestBean1 、 SessionBean1 和 ApplicationBean1 对象的方法。要访问这些属性的受管 bean ,您可以使用和下面的代码片段相似的代码。 代码示例 1 :访问一个 Application Bean 属性
当一个页面在某个受管 bean 的作用域内第一次访问其属性时, web 应用将该受管 Bean 实例化。例如,一个 SessionBean1 对象实例直到用户访问一个引用了 SessionBean1 中某个属性的页面才存在于用户会话中。一个 ApplicationBean1 的对象实例将在页面首次通过任意会话访问 application bean 时被创建,并将伴随应用程序的运行而存在。 技巧: 添加额外的受管 Bean : 在“项目”窗口中,展开“源包”节点,右击包节点。 选择“新建” > “其它”,选择 JavaServer Faces 类别并选择“文件类型”下的作用域,然后单击“下一步”。 键入新建受管 Bean 的文件名并点击“完成”。 新建的受管 Bean 出现在“项目”窗口中的“源包”节点下。 向受管 Bean 添加属性 该 web 应用中的页面需要访问以下值,在本节中您将创建它们: ballotOptions.一个包含投票选项列表的数组属性。因为该列表对任何会话来说都是相同的,所以该属性属于 application 作用域。 tally. 一个 hash map 属性,用于记录来自各个会话的投票。由于该属性必须在几个会话之间都存在,所以它也属于 application 作用域。 hasVoted.一个布尔型属性,用于跟踪用户是否已经投票。由于应用程序需要在一个会话中的几个请求内保存这个值,所以将这个值存在该应用的 session 作用域。 timestamp. 一个 Date 类型的属性,应用程序将用户提交投票的时间记录在其中,以便下一个页面可以调用。由于应用程序在下一个页面传输给浏览器后不再需要这个值,所以该属性存在于 request 作用域内。 完成以下步骤,向受管 Bean 添加属性。 从主菜单选择“文件” > “新建项目”。 在“新建项目”向导中,从“类别”列表中选择 Web 并从“项目”列表中选择 Web Application ,之后点击“下一步”。 将项目命名为 Scopes 并点击“下一步”。 在“框架”面板中,勾选 Visual Web JavaServer Faces 并点击“完成”。 Scopes 项目的 Page1.jsp 在“可视化设计器”中被打开。 在“导航”窗口中,双击 ApplicationBean1 。 该操作将打开 ApplicationBean1.java 以便进行编辑。 接下来您可以添加 Application bean 属性。在构造函数 public class ApplicationBean1 extends AbstractApplicationBean下面,添加如下声明: 在 Java 编辑器中右击并选择“修复导入”。由于不止一个包内含有 Option 类,所以 IDE 将弹出“修复导入”对话框。 对 Java EE 5 项目,选择 com.sun.webui.jsf.model.Option。 对 J2EE 1.4 项目,选择 com.sun.rave.web.ui.model.Option。 在 Java 编辑器中右击并选择“重构” > “封装字段”。 在“封装字段&r |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |