双击该Hello.java
文件以查看它。
在Hello
类,称为管理bean类,提供了getter和setter方法name
中的Facelets页面表达式中使用属性。默认情况下,表达式语言引用类名,第一个字母为小写(hello.name
)。
package javaeetutorial.hello1;
import javax.enterprise.context.RequestScoped;
import javax.inject.Named;
@Named
@RequestScoped
public class Hello {
private String name;
public Hello() {
}
public String getName() {
return name;
}
public void setName(String user_name) {
this.name = user_name;
}
}
如果使用bean类的默认名称,则可以指定@Model
为注释,而不必同时指定@Named
和@RequestScoped
。该@Model
注释被称为刻板印象,对于封装等注解注释的术语。稍后将在CDI应用程序中使用原型进行描述。一些例子将@Model
在适当的地方使用。
范围简介
在Hello.java
类中,注释javax.inject.Named
并 javax.enterprise.context.RequestScoped
使用请求范围将类标识为托管bean。范围定义应用程序数据如何保持和共享。
JavaServer Faces应用程序中最常用的范围如下:
-
Request(
@RequestScoped
):请求范围在Web应用程序中的单个HTTP请求期间保持不变。在类似的应用程序hello1
中,应用程序由单个请求和响应组成,bean使用请求范围。 -
Session(
@SessionScoped
):会话范围在Web应用程序中的多个HTTP请求中保持不变。当应用程序由需要维护数据的多个请求和响应组成时,bean使用会话范围。 -
Application(
@ApplicationScoped
):应用程序范围在所有用户与Web应用程序的交互中持续存在。