JSF Gossip: Beans 上的 List、Map

来源:互联网 发布:360浏览器优化版 编辑:程序博客网 时间:2024/06/02 20:56

如果您的Bean上有接受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>
 ....

 

这是一个设定接受List型态的属性,我们使用<list-entries>标签指定将设定一个List物件,其中<value- class>指定将存入List的型态,而<value>指定其值,如果是基本型态,则会尝试使用指定的 <value-class>来作Wrapper类别。

设定Map的话,则是使用<map-entries>标签,例如:

 ....
 <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>
        <map-entries>
            <value-class>java.lang.Integer</value-class>
            <map-entry>
                <key>someKey1</key>
                <value>100</value>
            </map-entry>
            <map-entry>
                <key>someKey2</key>
                <value>200</value>
            </map-entry>
        </map-entries>
    </managed-property>
 </managed-bean>
 ....

 

由于Map物件是以key-value对的方式来存入,所以我们在每一个<map-entry>中使用<key>与< value>标签来分别指定。

您也可以直接像设定Bean一样,设定一个List或Map物件,例如在JSF附的范例中,有这样的设定:

 ....
   <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>
 ....

 

而范例中另一个设定List的例子如下:

 ....
  <managed-bean>
    <managed-bean-name>statusStrings</managed-bean-name>
    <managed-bean-class>
        java.util.ArrayList
    </managed-bean-class>
    <managed-bean-scope>request</managed-bean-scope>
    <list-entries>
      <null-value/>
      <value>Open</value>
      <value>Submitted</value>
      <value>Accepted</value>
      <value>Rejected</value>
    </list-entries>
  </managed-bean>
 ....
 

 

原创粉丝点击