我從另一個請求Bean實例化請求Bean實例手動bean時不工作,豆註解像@ManagedProperty和@PostConstruct從另一個bean
new LoginManager();
但其標註有@ManagedProperty
沒有按」財產只有在通過上述方式實例化的情況下,才能從詢問參考中獲得值。它只包含null
,以後在代碼中導致NPE。 @PostConstruct
也不會被調用。爲什麼如此&我該如何處理這個問題?
@ManagedBean(name = "loginManager")
@RequestScoped
public class LoginManager {
private String userid;
private String password;
@ManagedProperty(value="#{currentSession}")
private UserSessionManager userSession;
}
但userSession
無法從會話中使用讀取範圍的bean時這個bean實例化:new LoginManager();
但是我可以用FacesContext
讀取值!
完美!非常感謝!在這兩種方法(使用@ManagedProperty&evaluateExpressionGet')中,如果bean已經存在,它們會被檢索到嗎?所以我不需要甚至檢查這個bean是否已經被實例化並且我可以直接使用,對吧? –
這是正確的。如果JSF在範圍中不存在,JSF將只創建它,否則它只會返回現有的實例。 – BalusC