JSF托管Bean

本文概述

  • 将托管Bean配置为XML文件
  • 使用注释配置托管Bean
  • 渴望的托管豆
它是一个纯Java类, 包含一组属性和一组getter, setter方法。
以下是托管bean方法执行的常见功能:
  • 验证组件的数据
  • 处理组件触发的事件
  • 执行处理以确定应用程序必须导航到的下一页
它也可以作为JFS框架的模型。
JSF托管Bean示例
public class User { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }

你可以通过以下方式使用此bean。
  1. 通过配置成XML文件。
  2. 通过使用注释。
将托管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。自定义范围很少使用。
渴望的托管豆默认情况下, 托管bean是惰性的。这意味着, 仅当从应用程序发出请求时, bean才会实例化。
【JSF托管Bean】你可以在应用程序启动后立即强制实例化Bean并将其放置在应用程序范围内。你需要将托管bean的eager属性设置为true, 如以下示例所示:
@ManagedBean(eager=true)

    推荐阅读