DAN*_*DAN 7 java viewstate jsf myfaces
我们正在开发一个应用程序,我们必须支持多个浏览器选项卡/窗口.我们的设置:MyFaces 2.1,Spring,Orchestra
默认情况下,org.apache.myfaces.NUMBER_OF_VIEWS_IN_SESSION设置为20.这意味着如果您在浏览器中打开21个选项卡,则第一个选项卡中的页面将停止工作 - 给定视图没有视图状态.
如果在第二个选项卡中打开2个选项卡并请求21个视图更新(即Ajax事件),则会发生相同的情况.然后在第一个选项卡中单击将生成相同的异常.
有没有解决的办法?例如,是否可以将视图缓存绑定到会话范围?
将视图状态保存方法设置为client
而不是server
in web.xml
。
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</param-value>
</context-param>
Run Code Online (Sandbox Code Playgroud)
这样,整个视图状态将被保存在表单的隐藏输入字段中(当然以序列化形式),而不是仅保存引用会话中状态的视图状态 ID。这样做的缺点是页面大小可能会增加,但如果您打开了部分视图状态保存(这应该是 JSF 2.0 中的默认设置),这应该不是主要问题。
归档时间: |
|
查看次数: |
1039 次 |
最近记录: |