托管bean它是一個純Java類,它包含一組屬性和一組getter
,setter
方法。
以下是托管bean方法執(zhí)行的常見功能:
JSF托管Bean示例
請看看下面一段示例代碼 -
public class User {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
您可以通過以下方式使用此bean
。
<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>
在xml文件配置bean
是比較舊方法。 在這種方法中,我們必須創(chuàng)建一個名為faces-config.xml
的xml文件,JSF提供了配置bean
的標簽。
在上面的例子中,我們列出了bean-name
,bean-class
和bean-scope
。 所以,它可以在項目中訪問。
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在應(yīng)用程序配置資源文件中不需要托管bean配置項。
這是應(yīng)用程序配置資源文件方法的替代方法,并減少配置托管bean的任務(wù)。@RequestScoped
注釋用于提供托管的范圍。 您可以使用注解來定義bean將被存儲的范圍。
您可以對bean類使用以下范圍:
java.util.Map
,自定義范圍很少使用。托管bean
默認是懶惰的。 這意味著,只有在從應(yīng)用程序發(fā)出請求時才會去實例化bean。
如果想自動提前強制將bean
實例化,那么可在應(yīng)用程序啟動時,可以強制將bean
實例化并放置在應(yīng)用程序(@ApplicationScoped
)范圍內(nèi)。您需要將托管 bean 的eager
屬性設(shè)置為true
,如以下示例所示:
@ManagedBean(eager=true)