JSF-受管Bean与EL表达式

时间:2021-07-25 16:12:26

受管Bean与EL表达式

1)编写Bean:①有一个不带形参的构造方法 ②getXxx、setXxx ③一般要实现io.Serializable接口

2)声明受管Bean:①bean名称为外界访问其属性和调用方法的渠道,在一个jsf应用中,每个bean的名称都是唯一的

         ②bean类名:由报名限制的完整类名

         ③作用域:用来指定bean的生命周期,包括应用(application)、会话(session)、视图(view)、请求(request)、无(none),它们在配置文件中需要声明。

用java标注声明,例如:

package beans;

@ManagedBean(name="me")

@RequestScoped //或@ApplicationScoped/@SessionScoped/@ViewScoped/@NoneScoped视情况而定

public class UserBean{}

配置文件声明:

<managed-bean>

<managed-bean-name>me</managed-bean-name>

<managed-bean-class>beans.UserBean</managed-bean-class>

<managed-bean-scope>request</managed-bean-scope>

备注:无(none)会在 使用时随时创建

3)生命周期方法:指定在bean创建之后和销毁之前自动调用的方法:分别用@PostConstruct和@PreDestroy声明

4)初始化受管Bean(在<managed-bean>中设置)

①简单的属性设置

<managed-porperty>

<property-name>name</property-name>

<value>louby</value>

</managed-property>

<!--以上就是一个属性的设置-->

<property-name>pw</property-name>

<null-value/>

</managed-property>

②初始化List型属性(单词entry为登记的意思)

<managed-property><property-name>names</property-name>

<list-entries>

<value-class>java.lang.String</value-class><!--value中使用的字符类-->

<value>liu</value>

<value>zhao</value>

<value>wang</value>

</list-entries>

</managed-property>

③初始化Map型属性(在<managed-property>中)省略属性名如下:

<map-entries>

<key-class>java.lang.String</key-class>

<value-class>java.lang.Integer</value-class>

<map-entry>

<key>101</key>

<value>1</value>

</map-entries>

...其他属性设置

</map-entries>

5)List和Map型的受管bean配置:

<managed-bean>

<managed-bean-name>names</managed-bean-name>

<managed-bean-class>java.util.ArrayList</managed-bean-class>

<managed-bean-scope>application</managed-bean-scope>

<list-entries>

<value>liu</value>

<value>zhao</value>

<value>wang</value>

</list-entries>

</managed-bean>

6)值表达式

①一般出现在页面中,用于访问bean的属性

<h:inputText value="#{user.name}"/>

user.name=user["name"]=user['name']

②复合表达式:若干值表达式

<h:outputText value-"姓名:#{user.name},年龄:#{user.age}"/>

③方法表达式:指定一个对象及其一个方法

<h:commandButton action="#{user.checkPassword}"/>

以下4个组件可以设置一个表达式:

action、validator、actionListener、valueChangeListener