JSF学习笔记四-Managed Beans

 Managed Beans
     JSF 使用Bean 来达到逻辑层与表现层分离的目的,Bean 的管理集中在配置文件中,您只要修改配置文件,就可以修改Bean之间的依赖关系
    一、Backing Bean;Glue Bean,其作用是在真正的业务逻辑Bean 及UI组件之间搭起桥梁,在Backing Bean中会呼叫业务逻辑Bean处理使用者的请求,或者是将业务处理结果放置其中,等待UI组件取出当中的值并显示结果给使用者。
    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>
在JSF页面中可以使用 Expression Language 来取得或设定BEAN的属性,例如:
<h:inputText value="#{user.name}"/>
<managed-bean-scope>
设定Bean 的存活范围,您可以设定为request,application,session,none 当设定为none时会在需要的时候生成一个新的Bean,例如您在一个method中想要成为一个临时的Bean,就可以将之设定为none。
在JSF页面上要取得Bean的属性,是使用#{expression},而在JSP是写成${expression}
二Beans 的配置与设定
1、JSF预定义会读取faces-config。xml中关于Bean的定义,如果想要自行设置定义文件的名称,我们是在web.xml中提供javax.faces.CONFIG_FILES参数

  <context-param>
    <param-name>javax.faces.CONFIG_FILES</param-name>
    <param-value>/WEB-INF/faces-config.xml,/WEB-INF/faces-config2.xml,/WEB-INF/faces-config3.xml</param-value>
  </context-param>
如果是多个文件可以用“,”隔开。
2、一个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>
在其他类中取得Bean对象(这里用我们前面笔记里的onlyfun.caterpillar.UserBean)
  javax.faces.context.FacesContext context= javax.faces.context.FacesContext.getCurrentInstance();
  javax.faces.el.ValueBinding  binding= context.getApplication().createValueBinding("#{user}");
获取Bean对象
UserBean user = (UserBean)binding.getValue(context);
获取Bean对象的属性
String name=(String)binding.getValue(context);
----------------------------
设定初始值
<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>name</property-name>
<null-value/>
</managed-property>
</managed-bean>
这里还可以设定 int、float、boolean、或相应的Wrapper类,Boolean.valueOf()
------------------------------------
可以将其他产生的Bean设定给另一个Bean的属性,例如:
<managed-property>
<property-name>user</property-name>
<value>#{user}</value>
</managed-property>
user 为我们前面设定的Bean对象。
------------------------------------
Beans 上的List,Map的值设定。
<managed-property>
<property-name>someProperty</property-name>
<list-entries>
<value-class>java.lang.Integer</value>
<value>1</value>
<value>2</value>
<value>3</value>
 </list-entries>
</managed-property>
<managed-property>
<property-name>someProperty</property-name>
<map-entries>
<value-class>java.lang.Integer</value>
<map-entry><key>somekey0</key><value>100</value>
</map-entry>
<map-entry><key>somekey1</key><value>100</value>
</map-entry>
<map-entry>
</map-entry>
 </map-entries>
</managed-property>
我们也可以直接设定一个list或Map对象,这里就请大家思考一下,我就不多写了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值