快速业务通道

理解作用域和受管Bean - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-07-04
t;navigation-case> 元素中包含 <redirect> 元素,您将不能使用 request bean 。(您可以在页面流编辑器中点击 XML 按钮来查看这些规则。)当页面被提交时, <redirect> 元素将重定向页面并在后面的页面能够使用任何存储于 Request Bean 中的值之前结束请求。

当您从 IDE 中创建一个页面时,页面 bean 的 Java 源代码中就包含了访问 RequestBean1 、 SessionBean1 和 ApplicationBean1 对象的方法。要访问这些属性的受管 bean ,您可以使用和下面的代码片段相似的代码。

代码示例 1 :访问一个 Application Bean 属性

ApplicationBean1 appBean = getApplicationBean1(); Option[] choices = appBean.BallotOptions();

当一个页面在某个受管 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下面,添加如下声明:private Option[] ballotOptions; private HashMap tally;

在 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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多
你可能对下面的文章感兴趣
    HTTP/1.1 401 Access Denied a>

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号