託管bean它是一個純Java類,它包含一組屬性和一組getter
,setter
方法。
以下是託管bean方法執行的常見功能:
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
是比較舊方法。 在這種方法中,我們必須建立一個名為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在應用程式組態資原始檔中不需要托管bean組態項。
這是應用程式組態資原始檔方法的替代方法,並減少組態託管bean的任務。@RequestScoped
注釋用於提供託管的範圍。 您可以使用註解來定義bean將被儲存的範圍。
您可以對bean類使用以下範圍:
java.util.Map
,自定義範圍很少使用。託管bean
預設是懶惰的。 這意味著,只有在從應用程式發出請求時才會去範例化bean。
如果想自動提前強制將bean
範例化,那麼可在應用程式啟動時,可以強制將bean
範例化並放置在應用程式(@ApplicationScoped
)範圍內。您需要將託管 bean 的eager
屬性設定為true
,如以下範例所示:
@ManagedBean(eager=true)