带有选项卡式浏览的JSF会话范围bean
我们有以下问题 应用程序的环境: JSF,Richfaces,a4J 考虑以下场景:带有选项卡式浏览的JSF会话范围bean,jsf,tabs,richfaces,ajax4jsf,Jsf,Tabs,Richfaces,Ajax4jsf,我们有以下问题 应用程序的环境: JSF,Richfaces,a4J 考虑以下场景: 用户登录到系统 用户导航到包含a4j组件的a4j表单的新页面,用户填写表单但不提交 用户打开一个新选项卡,打开相同的URL,并用新数据填写新表单 用户返回第一个选项卡并提交信息(注意:所有bean都是在会话范围内定义的) 结果: 提交的信息是来自第二个选项卡但从第一个选项卡提交的信息,只要bean被定义为会话范围,这是预期的 问题: 我们需要获得请求范围的行为(即:尽管bean被定义为会话范围,但将新选项卡
- 用户登录到系统
- 用户导航到包含a4j组件的a4j表单的新页面,用户填写表单但不提交
- 用户打开一个新选项卡,打开相同的URL,并用新数据填写新表单
- 用户返回第一个选项卡并提交信息(注意:所有bean都是在会话范围内定义的)
非常感谢这是Web应用程序的一个众所周知的问题 当然,您可以尝试使用更多自定义代码来解决此问题 但我的快速建议是使用解决这个问题的方法 Seam是JSF的超集,它为 做你想做的事的豆子 Seam本机支持richfaces(两者都是JBoss/Redhat的项目),因此
您不应该期望集成会出现任何问题。bean需要在会话范围内的原因是什么 如果这只是为了获得ajax功能,那么您可以将bean更改为请求并使用标记 a4j:keepAlive扩展了请求范围bean的生命周期,然后您的bean实例就好像它在ajax请求的会话范围内一样。当用户打开两个相同的页面时,他们使用的是两个不同的bean实例