我们有以下问题......
应用程序的环境:
JSF,Richfaces,a4J
考虑使用以下方案:
结果:
提交的信息是来自第二个选项卡的信息,但是从第一个选项卡提交,只要将bean定义为会话范围,这就是预期的。
问题:
我们需要获取请求范围的行为(即:将新选项卡作为新请求处理,尽管bean被定义为会话范围)。
备注:
当将bean范围定义为请求范围时,来自相同表单的各个组件的部分Ajax响应会重置其他组件,因为它们尚未提交。
有什么建议吗?
-
非常感谢
答案 0 :(得分:2)
这是Web应用程序的一个众所周知的问题。
当然,您可以尝试使用更多自定义代码来解决此问题 但我的快速建议是使用seam framework来解决这个问题。
Seam是JSF的超集,并为其引入了新的conversation scope
完全符合你想要的豆子。
Seam本地支持richfaces(两者都是JBoss / Redhat的项目)所以 你不应该指望任何集成问题。
答案 1 :(得分:0)
bean需要在会话范围内的原因是什么?
如果这只是为了获得ajax功能,那么您可以更改bean以请求并使用a4j:keepAlive标记。
a4j:keepAlive扩展了请求范围bean的实时周期,然后您的bean实例就像在ajax请求的会话范围内一样。当用户打开同一页面中的两个时,他们使用两个不同的bean实例。