`
bengan
  • 浏览: 203808 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

JSF Mbean

阅读更多
首先从Model1中的JavaBean说起,大家知道,Model1的基本架构就是JSP页面通过JavaBean访问数据层,那么JavaBean到底是什么东东呢?
其实JavaBean只是一个特别的Java类而已。在JavaBean中,对私有的域用getXXX和setXXX来实现存取,并且必须有一个无参数的构造函数,如下类就是一个JavaBean文件。
package net.moon.beans;

public class UserInfo ...{
    private String userName;
    private String password;
   
    public String getUserName()...{
        return userName;
    }
   
    public String getPassword()...{
        return password;
    }
   
    public void setUserName(String userName)...{
        this.userName = userName;
    }
   
    public void setPassword(String password)...{
        this.password = password;
    }
   
    //如果一个类中无构造函数,Java会为它加一个默认的空的无参数的构造函数,
    //因此,如无其它构造函数,可省略该构造函数
    public UserInfo()...{
       
    }
}
  
        需注意其中的格式要求,域名为第一个单词首字母小写的(usernName),对应一个域,分别有一个getUserName和setUserName两个方法,来读取和设置这一域,方法名为get/set + 域名(首字母大写)。
        做过Model1开发的人会知道,JavaBean的引入方式可以是使用标签<jsp:useBean>来引入的,不需开发人员实例化即可产生一个该类的实例,因为实例是由Web容器产生的,所以我们必须提供无参数的构造函数由Web容器来调用。
        再来解释JSF中的MBean,其实MBean就是一个JavaBean,因此它有着和JavaBean相同的要求。
        最后是MBean的配置,JSF的MBean需要在faces-config文件中做配置,配置方法如下:
    <managed-bean>
       <description>demo of config</description>
       <display-name>userInfo</display-name>
       <managed-bean-name>user</managed-bean-name>
       <managed-bean-class>net.moon.beans.UserInfo</managed-bean-class>
       <managed-bean-scope>session</managed-bean-scope>
    </managed-bean>

 
对其中的managed-bean-name,managed-bean-class和managed-bean-scope做一下解释。
        managed-bean-name是这一MBean的名字,用于其它位置的调用。
        managed-bean-class是这一MBean的完整路径,用于指明该MBean的类文件位置。
        managed-bean-scope是这一MBean的有效范围。
下面再对manage-bean-scope进行一下详细的解释,其有效取值为:application, session, request, none。很容易理解,它们的存活周期分别如下:
Name Scope
Application 整个应用
Session 整个对话
Request 整个请求
None 需要时,临时

大家知道,JSF是以JSP为基础的,那么,对于JSP的九大对象来说,这四种scope的信息到底是怎么存储的呢?
经过测试证明,scope为applicatoin的MBean的实例保存在ServletContext中,也就是JSP中的application中,因此我们可以用如下的方法得到某个类的引用:
FacesContext fc = FacesContext.getCurrentInstance();
UserInfo ui = (serInfo)fc.getExternalContext().getApplicationMap().get("user");

 
 
对session级别的MBean,我们可以用如下方法得到其引用:
FacesContext fc = FacesContext.getCurrentInstance();
UserInfo ub = (UserInfo)fc.getExternalContext().getSessionMap().get("userInfo");

 
 
当然,我们也可以用其它的方法得到session对象后,从session中取出实例。

对request级别的MBean,我们可从request对象中取得,代码如下:
FacesContext fc = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest)fc.getExternalContext().getRequest();
UserInfo ui = (UserInfo)request.getAttribute("user");

 
 
至于none类型的MBean,应该只能得到新的实例了。

当然,JSF提供了另外的访问MBean的方法,我们可以用如下的代码得到MBean的实例:
FacesContext context = FacesContext.getCurrentInstance();
ValueBinding binding =  context.getApplication().createValueBinding("#{user}");
UserBean user = (UserBean) binding.getValue(context);

 
也可用如下的代碼直接得到MBean的一個屬性:
FacesContext context = FacesContext.getCurrentInstance();
ValueBinding binding =  context.getApplication().createValueBinding("#{user.name}");
String name = (String) binding.getValue(context);

From <a href='http://blog.csdn.net/sunshinestation'>http://blog.csdn.net/sunshinestation</a>
Author: Fy.Zhang
分享到:
评论

相关推荐

    J2EE API (e)

    10. **JMX (Java Management Extensions)**: JMX用于管理和监控Java应用程序,提供了创建、注册、查询和管理MBean(Managed Beans)的能力,这些MBean代表了可管理的资源。 除了以上组件,J2EE API还包含了其他一些...

    J2EE_的_13_种核心技术

    3. **JavaServer Faces (JSF)**:JSF是一种用于构建用户界面的MVC(模型-视图-控制器)框架,提供了组件化的方式来创建Web应用,简化了UI开发。 4. **Enterprise JavaBeans (EJB)**:EJB是J2EE中的核心组件,用于...

    Junit设计模式分析.pdf

    4. **JSF 1.2**:支持最新的JSF版本,增强了Web应用程序的开发能力。 5. **Web服务**:提供了对Web服务的更好支持,包括SOAP和RESTful服务。 ### 总结 JBoss 5通过对微容器的改进,不仅增强了自身的竞争力,也为...

    Spring in Action(第2版)中文版

    16.4.3在jsf页面中使用springbean 16.4.4在jsf中暴露应用程序环境 16.5spring中带有dwr的支持ajax的应用程序 16.5.1直接web远程控制 16.5.2访问spring管理的beandwr 16.6小结 附录a装配spring a.1下载spring ...

    TongWeb5.0.1.1用户使用手册

    支持多种Java EE 5规范,包括但不限于Servlet 2.5、JSP 2.1、JSF 1.2、EJB 3.0、JPA 1.0等。 #### 2. TongWeb5.0服务安装 **2.1 TongWeb5.0安装要求** - **2.1.1 TongWeb5.0支持的操作系统**: 包括Windows、Linux...

    Spring in Action(第二版 中文高清版).part2

    16.4.3 在JSF页面中使用Spring Bean 16.4.4 在JSF中暴露应用程序环境 16.5 Spring中带有DWR的支持Ajax的应用程序 16.5.1 直接Web远程控制 16.5.2 访问Spring管理的Bean DWR 16.6 小结 附录A 装配Spring A.1 ...

    Spring in Action(第二版 中文高清版).part1

    16.4.3 在JSF页面中使用Spring Bean 16.4.4 在JSF中暴露应用程序环境 16.5 Spring中带有DWR的支持Ajax的应用程序 16.5.1 直接Web远程控制 16.5.2 访问Spring管理的Bean DWR 16.6 小结 附录A 装配Spring A.1 ...

    weblogic9相关文档

    2. **webapplications.pdf** - Web应用程序开发:文档深入探讨了在WebLogic Server上开发、部署和管理Web应用程序的细节,包括Servlet、JSP、JSF等技术的应用,以及如何配置Web应用的部署描述符。 3. **webservices...

    JavaEE主要技术

    - **组件**:JSF 提供了大量的预定义 UI 组件,如输入框、按钮等。 - **转换器**:用于将用户输入的数据转换为适当的类型。 - **验证器**:检查用户输入是否符合预期格式或值。 #### 5. RMI-IIOP/Java IDL RMI-IIOP...

    jboss-eap-6.2.0

    1. **Java EE 6支持**:JBoss EAP 6.2.0完全兼容Java EE 6规范,这意味着它可以支持诸如JavaServer Faces (JSF),Java Persistence API (JPA),Java Message Service (JMS)以及Enterprise JavaBeans (EJB)等关键组件...

    tomcat8.5 java

    2. **JavaWeb**:是指使用Java技术开发的Web应用程序,包括Servlet、JSP、JavaServer Faces (JSF) 等技术,用于创建动态交互式的Web应用。 3. **Servlet**:Java Servlet是Java Web开发中的核心组件,它是Java代码的...

    tomcat-8.5

    5. **MBean注册表**:提供了新的管理界面,可以通过JMX(Java Management Extensions)进行远程管理,方便监控和控制Tomcat实例。 6. **更好的兼容性**:与Java EE 7规范兼容,支持JSF、JPA、JAX-RS等标准,为开发...

    Spring2.5-Reference_zh_CN.txt

    - **视图技术集成**:Spring MVC支持多种视图技术,如Tiles、JSF等。 - **消息驱动POJO**:Spring支持将普通的Java对象作为消息驱动的POJO,方便进行异步处理。 #### 八、高级特性 - **Spring与JMX**:Spring支持将...

    Spring中文帮助文档

    2.5.6. 对JSF 1.2支持 2.5.7. JAX-WS支持 2.6. 其他 2.6.1. 动态语言支持 2.6.2. 增强的测试支持 2.6.3. JMX 支持 2.6.4. 将Spring 应用程序上下文部署为JCA adapter 2.6.5. 计划任务 2.6.6. 对Java 5 ...

    Spring API

    2.5.6. 对JSF 1.2支持 2.5.7. JAX-WS支持 2.6. 其他 2.6.1. 动态语言支持 2.6.2. 增强的测试支持 2.6.3. JMX 支持 2.6.4. 将Spring 应用程序上下文部署为JCA adapter 2.6.5. 计划任务 2.6.6. 对Java 5 ...

    Spring攻略(第二版 中文高清版).part2

    7.5 将Spring Web Flow与JSF集成 267 7.5.1 问题 267 7.5.2 解决方案 267 7.5.3 工作原理 267 7.6 使用RichFaces与Spring WebFlow协作 275 7.6.1 问题 275 7.6.2 解决方案 275 7.6.3 方法 275 7.7 ...

    Spring攻略(第二版 中文高清版).part1

    7.5 将Spring Web Flow与JSF集成 267 7.5.1 问题 267 7.5.2 解决方案 267 7.5.3 工作原理 267 7.6 使用RichFaces与Spring WebFlow协作 275 7.6.1 问题 275 7.6.2 解决方案 275 7.6.3 方法 275 7.7 ...

Global site tag (gtag.js) - Google Analytics