jsf in action 笔记:bean的创建和初始化(一)(3.3 Creating and initializing beans)--2008.04.12

来源:互联网 发布:python教程书 编辑:程序博客网 时间:2024/04/27 20:07

2008.04.12 摘自 JSF in action  3.3 Creating and initializing beans  Page/144

1.  JSF中对于bean的创建与初始化是在其配置文件(默认为/WEB-INF/faces-config.xml)中来操作的,(有关于java bean的一些规则请看<thinking in java 笔记--java bean规则--2008.04.11 >这篇文章),被称为Managed Bean
Creation facility,它负责创建,初始化,并将对象放在相应的应用范围中(Application,session,request,none scope)中,由Managed Bean Creation facility创建的bean被称为managed beans.

2.  使用Managed Bean Creation facility可以:

  • 声明bean的类型及初始化其属性可以在一个地方进行.
  • 可以管理生成的bean的生存空间,application,session,还是request,none
  • 改变bean的类型及初始的属性值不用去改动java类文件,只用修改配置文件就可以了.
  • 可以通过其它对象来初始化bean中的属性,也就是依赖注入或反转控制
  • 可以在页面上用JSF EL语言来对bean进行操作

3.  通常在应用启动的时候不需要创建的对象才由Managed Bean Creation facility去管理,对于一些创建起来比较费时的对象应该在应用服务启动的时候创建,比如说数据库的连接.

4.  managed-bean在.xml配置文件中的声明,在这里name,class,scope是必须填写的

JSF managed bean xml configuration

  • <managed-bean-name> 放到应用scope中的一个标识,以供在页面上进行调用,就像<h:outputText value="Hello #{user.firstName} #{user.lastName}!"/>这里面的"user".
  • <managed-bean-class> bean类的全名称,包括package部分
  • <managed-bean-scope> bean对象存放的范围,application,session,request,还是none
  • <description> 是用来描述这个bean的作用的,相当于一个文档说明
  • xml格式的代码如下:
    <managed-bean>
       
    <description>Used for logging and logging out.</description>
       
    <managed-bean-name>authenticationBean</managed-bean-name>
       
    <managed-bean-class>org.jia.ptrack.web.AuthenticationBean
       
    </managed-bean-class>
       
    <managed-bean-scope>session</managed-bean-scope>
    </managed-bean>
    This tells the Managed Bean Creation facility to create a new instance of org.jia.
    ptrack.web.AuthenticationBean and store it in the session under the name
    authenticationBean the first time the bean is accessed. As long as the same session
    is in use, the same instance of AuthenticationBean will be used. This
    instance can be referenced with the expression "#{authenticationBean}", or,
    more explicitly, "#{sessionScope.authenticationBean}".

5.  以上只是说到了managed bean的一些简单配置,对于创建bean时对其属性进行赋值,留到下一篇来说.