2012-10-08 64 views
0

這是在以前的問題中提出的(http://stackoverflow.com/questions/6043259/auto-instantiate-a-session-bean)。我實施了BalusC提供的解決方案,但它不起作用。這是我的代碼:如何讓JSF自動實例化會話bean

@ManagedBean 
@SessionScoped 
public class UserSessionBean { 

@ManagedBean 
@ViewScoped 
public class ReaderBean implements Serializable { 

@ManagedProperty("#{userSessionBean}") 
private UserSessionBean userSessionBean; 

如果我理解正確BalusC,JSF應該自動實例化會話bean。在我的情況下,我得到錯誤,說ReaderBean不能實例化,因爲沒有UserSessionBean的實例存在。那麼我怎樣才能讓JSF爲我管理實例呢?手動實例化並放入會話映射據說是一種黑客/解決方法,所以我想避免它。

+0

將來,請從下往上閱讀堆棧跟蹤。最底部是第一個根本原因。那部分應該已經暗示你一個失蹤的二傳手。 – BalusC

回答

1

我得到了答案。

託管屬性需要Getter和Setter方法。

+0

事實上,'@ ManagedProperty'只需要一個setter來完成注入。 getter是從它的持有bean中獲取它,或者在頁面或另一個類/ bean中獲取它。 – Gamb