【发布时间】:2012-05-17 08:13:17
【问题描述】:
我是 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 构造良好,但是当我尝试手动更新它时,如上所示,我在更新方法的第一行得到 IllegalStateException updateMenu()
我不明白出了什么问题,因为在第一次构建菜单时,我可以通过相同的调用获取会话映射。
另外,使用 NetBeans 调试器,我可以看到 MenuBean 的实例已正确恢复。
你们能帮帮我吗?
【问题讨论】:
标签: session jsf illegalstateexception session-bean