0
在我们的应用程序中,我们为每个用户选项卡定义了一个portlet。在导航到新portlet之前清除JSF会话
- 我们使用的是JSF 1.2 + Portlets。
- 当用户 从一个标签导航到另一个时,我想清除FacesContext会话托管的bean。
实现此目的的最佳方法是什么?
- 是否有任何可用的portlet的卸载功能,其中用户离开 标签(门户)之前,我们可以写 代码以删除会话管理的Bean。
在我们的应用程序中,我们为每个用户选项卡定义了一个portlet。在导航到新portlet之前清除JSF会话
实现此目的的最佳方法是什么?
当你使用JSF 1.2,因此无法采取其目的是出于这样的目的,新的视图范围内的利益,你最好的选择就是抓住MyFaces Tomahawk或MyFaces Orchestra。您只需要将“视图”范围的bean从会话范围返回到请求范围。
如果您想模拟新的JSF 2.0视图范围,即只要您使用相同视图进行交互,bean就会存活,那么您需要将Tomahawk的<t:saveState>
添加到引用请求范围的bean的视图中。
<h:form>
<h:inputText value="#{bean.input}" />
<h:commandButton value="Submit" action="#{bean.submit}" />
<t:saveState value="#{bean}" />
</h:form>
如果你想模仿新CDI谈话范围,它可以跨越同一个浏览器选项卡中的多视图,那么你需要整合乐团。
你确定你的托管bean需要是@SessionScoped吗?在你的场景中,似乎视图或对话范围会更好。 – jFrenetic
我们正在使用JSF 1.2,所以我不能使用视图范围感谢 – Greg
CDI是否可用?如果是这样,它有对话范围。 – jFrenetic