JSF托管Bean

2024 年 8 月 29 日 | 阅读 2 分钟

它是一个纯Java类,包含一组属性和一组getter、setter方法。

以下是托管Bean方法执行的常见功能

  • 验证组件的数据
  • 处理由组件触发的事件
  • 执行处理以确定应用程序必须导航到的下一页

它也用作JFS框架的模型。

JSF托管Bean示例

您可以通过以下方式使用此Bean。

  1. 通过配置到XML文件。
  2. 通过使用注解。

将托管Bean配置到XML文件

这是一种将Bean配置到xml文件中的较旧方法。在这种方法中,我们必须创建一个名为faces-config.xml的xml文件。JSF提供<managec-bean>标签来配置Bean。

在上面的例子中,我们列出了bean-name、bean-class和bean-scope。因此,它可以在项目中访问。


使用注解配置托管Bean

类中的@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是惰性的。这意味着,仅当应用程序发出请求时才实例化Bean。

您可以强制Bean在应用程序启动后立即实例化并放置在应用程序作用域中。您需要将托管Bean的eager属性设置为true,如以下示例所示


下一主题JSF示例