我有一個導航管理bean爲每個用戶。如何強制託管bean首先初始化?
我需要它在任何其他bean之前初始化,因爲bean需要一個值。
我可以知道我應該怎麼做?我試過eager="true"
但它不起作用。
通過faceconfig的任何快速和簡單的解決方案將不勝感激。
我有一個導航管理bean爲每個用戶。如何強制託管bean首先初始化?
我需要它在任何其他bean之前初始化,因爲bean需要一個值。
我可以知道我應該怎麼做?我試過eager="true"
但它不起作用。
通過faceconfig的任何快速和簡單的解決方案將不勝感激。
從我看到你應該引用另一個bean。假設有一個實用工具類可以從上下文中抽取一個bean。
基本上 - >
//Bean A
public void doSomething()
{
String required = Utility.getBeanB().getRequiredValue();
use(required);
}
...
//Bean B
public String getRequiredValue()
{
return "Hi, I'm a required value";
}
我有有一個「會話Bean」,存儲的東西,如用戶的喜好,共享對象等幾個大型的網絡應用程序...這方法完美的作品。通過使用對bean的引用,您無需鏈接初始化。該方法總是取決於另一個bean中的方法,從而保證了初始化的順序。
有多種方式訪問bean的,但我通常都要經過EL路線 - >
Get JSF managed bean by name in any Servlet related class
祝你好運,我儘量保持「功能純」時,我可以 - 我希望能夠考慮到這種語言而笑起來!
只需在bean的@PostConstruct
中執行所需的初始化作業。
@PostConstruct
public void init() {
// Here.
}
當第一次注入/引用另一個bean時,它將被調用。
eager=true
僅適用於應用程序範圍的bean。
servlet容器首次加載託管bean(啓動時)後,此@PostConstruct init()將被調用4次 – sytolk
這不是默認行爲。 – BalusC