个性化阅读
专注于IT技术分析

JSF托管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才会实例化。

你可以在应用程序启动后立即强制实例化Bean并将其放置在应用程序范围内。你需要将托管bean的eager属性设置为true, 如以下示例所示:

@ManagedBean(eager=true)

赞(0)
未经允许不得转载:srcmini » JSF托管Bean

评论 抢沙发

评论前必须登录!