0
我有一個名爲'usermanager'的會話作用域託管bean。我想將用戶信息存儲在usermanager bean的屬性中,並使用下面的靜態方法訪問它。我想提出這些問題,提前致謝,並對可憐的英語感到抱歉。如何用jsf登錄
1-A託管bean被管理,如果我通過jsf注入mechanizm.That是它如果我創建一個實例使用新的UserManager()這不會是一個託管bean。我是嗎?
2 - 以下代碼中的usermanager可以爲null。
3-在java中處理用戶,組權限的最有效方法是什麼?我應該使用Spring,Seam來達到這個目的。
4 - 我應該將此用戶信息存儲在與setParamater(key,Object)的Httpsession中,還是繼續將其存儲在會話Bean中。
public static User getUserOfCurrentSession(){
UserManager userManager = (UserManager) ((HttpServletRequest)FacesContext.getCurrentInstance()
.getExternalContext().getRequest()).getSession(true)
.getAttribute("userManager");
if(userManager!=null){
return userManager.getUser();
}
FacesContext c = FacesContext.getCurrentInstance();
HttpServletRequest r = (HttpServletRequest) c.getExternalContext()
.getRequest();
HttpSession s = r.getSession(false);
if(s!=null)
s.invalidate();
try{
FacesContext.getCurrentInstance().getExternalContext().redirect("login.xhtml");
FacesContext.getCurrentInstance().responseComplete();
return null;
}catch(IOException e){
e.printStackTrace();
}
throw new RuntimeException("Un authonticated user action");
}
在JSF中獲取原始Servlet API是一種強大的「代碼異味」指示器。所以在這個特殊情況下了解託管財產注入。 – BalusC