我嘗試保持SessionBean的範圍的通過量我的網頁,爲此,我也跟着從這裏一些教程,實際上,我試圖讓通過量的ExternalContext會話,如下面的代碼:獲取會話Bean實例
public class LoginFilter implements Filter{
ProfileBean pBean = new ProfileBean();
ActiveUserModel activeUserModel;
ExternalContext tmpEC;
Map sMap;
public void destroy() {}
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
tmpEC = FacesContext.getCurrentInstance().getExternalContext();
sMap = tmpEC.getSessionMap();
activeUserModel = (ActiveUserModel) sMap.get("ActiveUserModel");
String username = SecurityAssociation.getPrincipal().getName();
if(activeUserModel.getUsername() == null)
{
try {
pBean.consultaProfile(username);
} catch (SQLException e) {
e.printStackTrace();
} catch (NamingException e) {
e.printStackTrace();
}
}else{
}
filterChain.doFilter(servletRequest, servletResponse);
}
public void init(FilterConfig filterConfig) throws ServletException {}
}
在這一行,如果(activeUserModel.getUsername()== NULL),我得到一個顯示java.lang.NullPointerException因爲我不實例化豆,但即使我實例化,沒」工作。
有什麼問題嗎?
[您不能直接獲得一個過濾器'FacesContext'參考(HTTP:/ /stackoverflow.com/a/14394992/1530938)像你試圖在這裏做的。 – kolossus 2013-04-30 23:45:05