我是 Java 和 JSF 的新手。我需要有关 IllegalStateException 的帮助。这是场景:
在我当前的项目中,我为应用程序菜单提供了这个 Session Scoped bean:
public final class MenuBean implements Serializable{
private MenuModel model;
private FacesContext context = FacesContext.getCurrentInstance();
public MenuModel getModel() {
return model;
}
public MenuBean() {
updateMenu();
}
public void updateMenu(){
Map session = (Map<String,Object>) context.getExternalContext().getSessionMap();
EUser user = (EUser) session.get(UserBean.USER_SESSION_KEY);
...
}
private MethodExpression createMethodExpression(String action) {
...
}
}
在我的逻辑上,我需要更新菜单,所以我这样做:
ExternalContext extContext = context.getExternalContext();
Map sMap = (Map<String,Object>) extContext.getSessionMap();
MenuBean menu = (MenuBean) sMap.get("menuBean");
menu.updateMenu();
bean 构造良好,但是当我尝试手动更新它时,如上所示,我在更新方法的第一行得到 IllegalStateExceptionupdateMenu()
我不明白出了什么问题,因为我可以在第一次构建菜单时使用相同的调用来获取会话映射。
此外,使用 NetBeans 调试器,我可以看到 MenuBean 的实例已正确恢复。
你们能帮帮我吗?