本文概述
- 将托管Bean配置为XML文件
- 使用注释配置托管Bean
- 渴望的托管豆
以下是托管bean方法执行的常见功能:
- 验证组件的数据
- 处理组件触发的事件
- 执行处理以确定应用程序必须导航到的下一页
JSF托管Bean示例
public class User {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
你可以通过以下方式使用此bean。
- 通过配置成XML文件。
- 通过使用注释。
<
managed-bean>
<
managed-bean-name>
user<
/managed-bean-name>
<
managed-bean-class>
User<
/managed-bean-class>
<
managed-bean-scope>
session<
/managed-bean-scope>
<
/managed-bean>
这是将bean配置为xml文件的较旧方法。在这种方法中, 我们必须创建一个名为faces-config.xml的xml文件。 JSF提供了< managec-bean> 标记来配置bean。
在上面的示例中, 我们列出了bean名称, bean类和bean-scope。因此, 可以在项目中访问它。
使用注释配置托管Bean
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
@ManagedBean// Using ManagedBean annotation
@RequestScoped// Using Scope annotation
public class User {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
类中的@ManagedBean批注会自动将该类注册为JavaServer Faces的资源。这样注册的受管Bean在应用程序配置资源文件中不需要受管Bean配置条目。
这是应用程序配置资源文件方法的替代方法, 可以减少配置受管Bean的任务。
@RequestScoped批注用于提供ManagedBean的范围。你可以使用注释来定义将在其中存储Bean的范围。
你可以对bean类使用以下作用域:
- 应用程序(@ApplicationScoped):应用程序范围是否在所有用户中持久存在?与Web应用程序的交互。
- 会话(@SessionScoped):会话范围在Web应用程序中的多个HTTP请求中保持不变。
- 视图(@ViewScoped):在用户与Web应用程序的单个页面(视图)交互期间, 视图范围仍然存在。
- 请求(@RequestScoped):在Web应用程序中的单个HTTP请求期间, 请求范围仍然存在。
- 无(@NoneScoped):表示未为应用程序定义范围。
- 自定义(@CustomScoped):用户定义的非标准范围。它的值必须配置为java.util.Map。自定义范围很少使用。
【JSF托管Bean】你可以在应用程序启动后立即强制实例化Bean并将其放置在应用程序范围内。你需要将托管bean的eager属性设置为true, 如以下示例所示:
@ManagedBean(eager=true)
推荐阅读
- JSF h:message标签
- JavaServer Faces生命周期
- JSF JDBC连接
- JSF h:inputTextarea标记
- JSF h:inputText标签
- JSF h:inputSecret标记
- JSF h:inputHidden标记
- JSF h:inputFile标记
- HTML5友好标记