jsf in action 笔记:bean的创建和初始化(三)(List,Map属性)--2008.04.12
2008-04-12 22:00
651 查看
2008.04.12 摘自 JSF in action Initializing List and array properties Page/150
1. List或者Array的类属性的设置与String类型的初始化很相似..xml文件的结构图为:
Figure 3.8 To initailize a managed bean property that is a List or array, you use the <list-entries> element and nest zero or more <value> or <null-value> elements in it. Optionally, you can specify the Java class for all of the values with the <value-class> element.
2. 与普通类型的属性不同的只是<value>替换成了<list-entries>,<value-class>指List或array中存放的对象的类型.
3. 如果bean中要配置的那个属性是null,那么配置类(facility)会创建一个new List or array,然后根据配置文件把配置信息add进去,如果属性不为空,则不会创建新对象,而直接把配置信息add到list或array中.示例中的代码是初始化user中的favoriteSites属性:
<managed-bean>
<managed-bean-name>user</managed-bean-name>
<managed-bean-class>org.jia.examples.UserBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
...
<managed-property>
<property-name>favoriteSites</property-name>
<list-entries>
<value>http://www.jsfcentral.com</value>
<value>http://www.theserverside.com</value>
</list-entries>
</managed-property>
<managed-property>
<property-name>favoriteNumbers</property-name>
<list-entries>
<value-class>java.lang.Integer</value-class>这里指定List或Array中存放的值的类型,这样下面的值会先转换成Integer对象
<value>31415</value>
<value>278</value>
</list-entries>
</managed-property>
...
</managed-bean>
可以在页面中有#{user.favoriteSites[0]}这样的EL表达式来引用List中的第一个值.
4. 对于Map类型的对象,与List类型的配置也很相似,只是把<list-entries>换成了<map-entries>
Figure 3.9 To initailize a managed bean property that is a Map, you use the <map-entries> element and nest one or more <map-entry> elements. Each <map-entry> can have either a <value> or a <null-value> element. Optionally, you can specify the Java class for all of the values with the <value-class> element.
示例代码为:
<managed-bean>
<managed-bean-name>user</managed-bean-name>
<managed-bean-class>org.jia.examples.UserBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
...
<managed-property>
<property-name>favoriteSitesMap</property-name>
<map-entries>
<map-entry>
<key>JSF Central</key>
<value>http://www.jsfcentral.com</value>
</map-entry>
<map-entry>
<key>TheServerSide.com</key>
<value>http://www.theserverside.com</value>
</map-entry>
</map-entries>
...
</managed-property>
页面中的可以这样来引用#{user.favoriteSitesMap['JSF Central']},如果是#{user.favoriteSitesMap}则会把map中的所有值输出.也可以指定key的类型,像这样:
<managed-property>
<property-name>favoriteNumbersMap</property-name>
<map-entries>
<key-class>java.lang.Integer</key-class>指定key的类型为Integer.
<map-entry>
<key>31415</key>
<value>A pi-like integer.</value>
</map-entry>
<map-entry>
<key>278</key>
<value>An e-like integer.</value>
</map-entry></map-entries>
</managed-property>
1. List或者Array的类属性的设置与String类型的初始化很相似..xml文件的结构图为:
Figure 3.8 To initailize a managed bean property that is a List or array, you use the <list-entries> element and nest zero or more <value> or <null-value> elements in it. Optionally, you can specify the Java class for all of the values with the <value-class> element.
2. 与普通类型的属性不同的只是<value>替换成了<list-entries>,<value-class>指List或array中存放的对象的类型.
3. 如果bean中要配置的那个属性是null,那么配置类(facility)会创建一个new List or array,然后根据配置文件把配置信息add进去,如果属性不为空,则不会创建新对象,而直接把配置信息add到list或array中.示例中的代码是初始化user中的favoriteSites属性:
<managed-bean>
<managed-bean-name>user</managed-bean-name>
<managed-bean-class>org.jia.examples.UserBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
...
<managed-property>
<property-name>favoriteSites</property-name>
<list-entries>
<value>http://www.jsfcentral.com</value>
<value>http://www.theserverside.com</value>
</list-entries>
</managed-property>
<managed-property>
<property-name>favoriteNumbers</property-name>
<list-entries>
<value-class>java.lang.Integer</value-class>这里指定List或Array中存放的值的类型,这样下面的值会先转换成Integer对象
<value>31415</value>
<value>278</value>
</list-entries>
</managed-property>
...
</managed-bean>
可以在页面中有#{user.favoriteSites[0]}这样的EL表达式来引用List中的第一个值.
4. 对于Map类型的对象,与List类型的配置也很相似,只是把<list-entries>换成了<map-entries>
Figure 3.9 To initailize a managed bean property that is a Map, you use the <map-entries> element and nest one or more <map-entry> elements. Each <map-entry> can have either a <value> or a <null-value> element. Optionally, you can specify the Java class for all of the values with the <value-class> element.
示例代码为:
<managed-bean>
<managed-bean-name>user</managed-bean-name>
<managed-bean-class>org.jia.examples.UserBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
...
<managed-property>
<property-name>favoriteSitesMap</property-name>
<map-entries>
<map-entry>
<key>JSF Central</key>
<value>http://www.jsfcentral.com</value>
</map-entry>
<map-entry>
<key>TheServerSide.com</key>
<value>http://www.theserverside.com</value>
</map-entry>
</map-entries>
...
</managed-property>
页面中的可以这样来引用#{user.favoriteSitesMap['JSF Central']},如果是#{user.favoriteSitesMap}则会把map中的所有值输出.也可以指定key的类型,像这样:
<managed-property>
<property-name>favoriteNumbersMap</property-name>
<map-entries>
<key-class>java.lang.Integer</key-class>指定key的类型为Integer.
<map-entry>
<key>31415</key>
<value>A pi-like integer.</value>
</map-entry>
<map-entry>
<key>278</key>
<value>An e-like integer.</value>
</map-entry></map-entries>
</managed-property>
相关文章推荐
- jsf in action 笔记:bean的创建和初始化(四)(List,Map作为单独的managed bean)--2008.04.13
- Spring学习笔记 关于Bean属性的初始化 - 使用inner bean以及List, Map与Set的初始化
- jsf in action 笔记:bean的创建和初始化(一)(3.3 Creating and initializing beans)--2008.04.12
- jsf in action 笔记:bean的创建和初始化(二)(initializing simple properties)--2008.04.12
- spring in action 学习笔记(六)通过setter注入bean属性
- spring in action 学习笔记(三)通过工厂方法创建bean
- spring in action 学习笔记(五)初始化和销毁bean
- SPRING IN ACTION 第4版笔记-第二章-004-Bean是否单例
- spring in action 学习笔记(七)注入内部bean
- SPRING IN ACTION 第4版笔记-第三章ADVANCING WIRING-004-消除bean自动装配的歧义@Primary
- spring中bean的高级属性之list, set, map以及props元素(含举例)
- spring中bean的高级属性之list, set, map以及props元素(含举例)
- [原创]java WEB学习笔记59:Struts2学习之路---OGNL,值栈,读取对象栈中的对象的属性,读取 Context Map 里的对象的属性,调用字段和方法,数组,list,map
- jsf 标签中的action属性与 bankiingbean中的 getXXX()的使用
- SPRING IN ACTION 第4版笔记-第二章WIRING BEANS-008-在XML配置文件中引入JAVA配置文件 <import> 、<bean>
- SPRING IN ACTION 第4版笔记-第三章ADVANCING WIRING-003-@Conditional根据条件生成bean及处理profile
- SPRING IN ACTION 第4版笔记-第三章ADVANCING WIRING-004-消除BEAN自动装配的歧义@QUALIFIER及自定义注解
- spring中bean的高级属性之list, set, map以及props元素(含举例)
- spring中bean的高级属性之list, set, map和props元素(含sample)
- SPRING IN ACTION 第4版笔记-第三章ADVANCING WIRING-007-给BEAN运行时注入值placeholder、@Value