我的问题是te数据没有在数据表中刷新。当我点击菜单中的项目时,我想破坏会话范围。我知道可以使用Viewscoped,但我想学习其他方式。 谢谢高级。
控制器:
@ManagedBean
@SessionScoped
public class MyController implements Serializable {
//getters and setters
...........
}
菜单:
<td><h:outputLink styleClass="itemOutputLink" value="# {request.contextPath}/pages/page.faces">Page1</h:outputLink></td>`
答案 0 :(得分:3)
没有真正“干净”的方式。 @SessionScoped
bean应该和Session一样长。因此,我再次强调你应该更好地调整豆子范围。
但如果你真的还需要这样做,那么最简单的方法就是这样做:
public static void removeSessionScopedBean(String beanName)
{
FacesContext.getCurrentInstance().getExternalContext().getSessionMap().remove(beanName);
}
对于@ViewScoped
bean,你可以这样做:
public static void removeViewScopedBean(String beanName)
{
FacesContext.getCurrentInstance().getViewRoot().getViewMap().remove(beanName);
}