1

我们在 IBM Websphere 8 上使用带有 Primefaces 的 JSF。我的问题是,如果我在 JSF 中有更多对话,ViewState 就会过期。如果用户处理两个会话并导航到许多页面,则视图状态的缓冲区(默认 20 个插槽)已满,并且另一个会话的视图状态将被删除。所以如果我回到第一次对话,viewState 就不存在了,我就不能再在这个对话上工作了。

是否可以在对话或任何其他解决方法中保存 ViewStates?将javax.faces.STATE_SAVING_METHOD设置为客户端并不是我认为的最佳解决方案。大幅增加org.apache.myfaces.NUMBER_OF_VIEWS_IN_SESSION也不是一个真正好的解决方案,因为预计会有很多会话。

4

1 回答 1

0

我们自己解决了。我们采用 PhaseListener 并组织视图,因此每个对话只有一个视图槽。这是可能的,因为我们禁用了缓存,因此每个对话不需要多个视图。在我们的应用程序中需要禁用缓存。

于 2013-11-13T08:03:17.320 回答