2008.04.13 摘自 JSF in action 3.3.2 Declaring Lists and Maps as managed beans Page/157
1. 上一篇 jsf in action 笔记:bean的创建和初始化(三)(List,Map属性)--2008.04.12 只是讲了bean的属性类型为List,Array,Map时,属性的初始化配置,但如果创建一个单独的List,Map(Array不允许创建一个单独的Managed bean)Managed Bean的话,配置还是有一点不一样的.
2. 初始化一个List对象时的.xml文件的元素(Elements)结构图如下:Figure 3.10 To declare a List as a managed bean, you must specify a <managed-bean-class> that is a concrete List implementation, and use the <list-entries> element as a child of the <managed-bean> element. Each <list-entries> element can have one or more <value> (or <null-value>) elements and a single <value-class> element.
- <managed-bean-class> 必须为List的接口的一个具体的实现类
- <managed-property> 被<list-entries>替换了
- <value-class>只能使用一次
- <value>或<null-value>可以使用一次或多次
3. 示例代码如下:
<managed-bean>
<description>List of favorite sites.</description>
<managed-bean-name>favoriteSites</managed-bean-name>
<managed-bean-class>java.util.ArrayList</managed-bean-class>
<managed-bean-scope>application</managed-bean-scope>
<list-entries>这里不同
<value>http://www.jsfcentral.com</value>
<value>http://www.theserverside.com</value>
</list-entries>
</managed-bean>
4. 声明Map类型的一个Managed bean与List很相似,只是把<list-entries>换成了<map-entries>,多加了<map-entry><key>及<ke,示例代码如下:
<managed-bean>
<description>List of favorite sites, keyed by name.</description>
<managed-bean-name>favoriteSitesMap</managed-bean-name>
<managed-bean-class>java.util.HashMap</managed-bean-class>
<managed-bean-scope>application</managed-bean-scope>
<map-entries>这里不同
<map-entry>这里不同
<key>JSF Central</key>
<value>http://www.jsfcentral.com</value>
</map-entry></map-entries>
</managed-bean>