Just some sharing about java open source and life

JSF Managed Beans

日期:2010-05-01 13:51 | 作者:JavaChen | 分类目录:JSF
137 views

JSF 使用 Bean 来达到逻辑层与表现层分离的目的,Bean 的管理集中在组态档案中,您只要修改组态档案,就可以修改 Bean 之间的相依关系。JSF支持配置文件配置bean和注解标注bean两种方式,声明一个受托管的javabean。JSF通过javabean来达到视图与逻辑相分离的目的,每一个javabean不需要继承任何java类,是一个纯粹的pojo对象,这点比struts做的好多了(当然struts2 有所改进)。

JSF将Bean的管理集中在faces-config.xml中,一个例子如下:

....
 <managed-bean>
    <managed-bean-name>user</managed-bean-name>
        <managed-bean-class>
            onlyfun.caterpillar.UserBean
        </managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
 </managed-bean>
 ....

<managed-bean-scope>设定Bean的生命存活范围,您可以设为request、session 和application(这和JSP有点差别),设为request時,Bean的存活为请求阶段,设为session则在使用应用程序交互开始,直到关闭浏览器或显示的结束会话为止,设为application,則Bean会一直存活到应用关闭为止。

还可以將存活存活范围设为none,当设为none时会在需要的时候生成一新的Bean,例如您在一個method中想要生成一个临时的Bean,就可以将他设定为none。

在bean的声明中可以为其指定属性,JSF在初始化该bean的时候会为其set注入这些属性。除了注入基本属性之外,还可以注入list、map集合属性。

....
 <managed-bean>
    <managed-bean-name>someBean</managed-bean-name>
    <managed-bean-class>
       onlyfun.caterpillar.SomeBean
    </managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>

    <managed-property>
        <property-name>someProperty</property-name>
        <list-entries>
            <value-class>java.lang.Integer</value-class>
            <value>1</value>
            <value>2</value>
            <value>3</value>
        </list-entries>
    </managed-property>
 </managed-bean>
 ....
....
   <managed-bean>
    <description>
      Special expense item types
    </description>
    <managed-bean-name>specialTypes</managed-bean-name>
    <managed-bean-class>
        java.util.TreeMap
    </managed-bean-class>
    <managed-bean-scope>application</managed-bean-scope>
    <map-entries>
      <value-class>java.lang.Integer</value-class>
      <map-entry>
        <key>Presentation Material</key>
        <value>100</value>
      </map-entry>
      <map-entry>
        <key>Software</key>
        <value>101</value>
      </map-entry>
      <map-entry>
        <key>Balloons</key>
        <value>102</value>
      </map-entry>
    </map-entries>
  </managed-bean>
 ....
作者:JavaChen | 分类目录:JSF | 标签:
回到顶部

无觅相关文章插件,快速提升流量