JSF Gossip: Beans 的组态与设定
来源:互联网 发布:手机淘宝怎么店铺认证 编辑:程序博客网 时间:2024/06/04 18:33
1.多个faces-config.xml文件
JSF预设会读取faces-config.xml中关于Bean的定义,如果想要自行设置定义档的名称,我们是在web.xml中提供javax.faces.CONFIG_FILES参数,例如:
<web-app>
<context-param>
<param-name>javax.faces.CONFIG_FILES</param-name>
<param-value>/WEB-INF/beans.xml</param-value>
</context-param>
...
</web-app>
定义档可以有多个,中间以 "," 区隔,例如:
/WEB-INF/navigation.xml,/WEB-INF/beans.xml
2.一个Bean最基本要定义Bean的名称、类别与存活范围
例如:
....
<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>
....
3.获取和设置bean的值
如果要在其它类别中取得Bean物件,则可以先取得javax.faces.context.FacesContext,它代表了JSF目前的执行环境物件,接着尝试取得javax.faces.el.ValueBinding物件,从中取得指定的Bean物件,例如:
FacesContext context = FacesContext.getCurrentInstance();
ValueBinding binding =
context.getApplication().createValueBinding("#{user}");
UserBean user = (UserBean) binding.getValue(context);
如果只是要尝试取得Bean的某个属性,则可以如下:
FacesContext context = FacesContext.getCurrentInstance();
ValueBinding binding =
context.getApplication().createValueBinding(
"#{user.name}");
String name = (String) binding.getValue(context);
如果有必要在启始Bean时,自动设置属性的初始值,则可以如下设定:
....
<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-property>
<property-name>name</property-name>
<value>caterpillar</value>
</managed-property>
<managed-property>
<property-name>password</property-name>
<value>123456</value>
</managed-property>
</managed-bean>
....
如果要设定属性为 null 值,则可以使用<null-value/>标签,例如:
....
<managed-property>
<property-name>name</property-name>
<null-value/>
</managed-property>
<managed-property>
<property-name>password</property-name>
<null-value/>
</managed-property>
....
当然,您的属性不一定是字串值,也许会是int、float、boolean等等型态,您可以设定<value> 值时指定这些值的字串名称,JSF会尝试进行转换,例如设定为true时,会尝试使用Boolean.valueOf()方法转换为boolean的 true,以下是一些可能进行的转换: 型态 转换
short、int、long、float、double、byte,或相应 的Wrapper类别 尝试使用Wrapper的valueOf()进行转换,如果没有设置,则设为 0
boolean 或 Boolean 尝试使用Boolean.valueOf()进行转换,如果没有设置,则设为 false
char 或 Character 取设置的第一个字元,如果没有设置,则设为0
String 或 Object 即设定的字串值,如果没有设定,则为空字串new String("")
您也可以将其它产生的Bean设定给另一个Bean的属性,例如:
....
<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>
<managed-bean-name>other</managed-bean-name>
<managed-bean-class>
onlyfun.caterpillar.OtherBean
</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
<managed-property>
<property-name>user</property-name>
<value>#{user}</value>
</managed-property>
</managed-bean>
....
在上面的设定中,在OtherBean中的user属性,接受一个UserBean型态的物件,我们设定为前一个名称为user的UserBean物件。
- JSF Gossip: Beans 的组态与设定
- JSF Gossip: Beans 上的 List、Map
- JSF Gossip: Backing Beans
- JSF Gossip: JSF Expression Language
- JSF Gossip: 国际化讯息
- JSF Gossip: 标准转换器
- JSF Gossip: 自订转换器
- JSF Gossip: 动作事件
- JSF点滴积累--初始值的设定
- JSF Gossip: 导航规则设置
- JSF Gossip: 错误讯息处理
- JSf Managed Beans (2)
- JSF---->Managed Beans
- JSF Gossip: 自订转换器 - 总结版
- 在Spring Beans中的JSF
- JSF days 2009 - Web Beans
- 利用DDE实现紫金桥组态软件与各种组态软件的通讯
- C# 的Active控件应用到IE与组态
- 菜鸟笔记1
- Linux ftp命令详解
- intent学习总结
- 自学中.......
- 身边不缺牛人牛姐
- JSF Gossip: Beans 的组态与设定
- asp.net学生管理系统
- C#双向链表的冒泡排序
- 探讨分页原理及 SQL Server
- http://www.cnblogs.com/onlytiancai/archive/2008/05/03/1180668.html
- 淘宝刷钻为何屡禁不止 透过现象看本质
- Vim里面的字符编码
- 查询数据表中最后一周记录
- 简单方法解决VLC中文字幕乱码