如果用户在具有相同会话的浏览器上打开多个标签,我会遇到一些问题。
我正在使用WebSphere 8.0。该页面是请求范围的。
关于什么是一个好的,易于维护的解决方案来防止这种情况的任何建议?
答案 0 :(得分:4)
您正在保存会话/ Cookie中的交易详情,这是一个坏主意,ID等应作为表单中的隐藏字段传递。
答案 1 :(得分:0)
Ankit的投票结果,当您打开新标签页时,请确保您有一个特定于标签的ID作为隐藏输入字段,例如产品ID。
从现在开始,您可以采用两种方式,即无状态方法,根本不使用会话,从数据库中加载所有内容,更新,保存。无国籍是一种幸福,如果你能完美支持它。 第二种方法假定您使用特定于选项卡的ID来从会话中检索正确的日期,换句话说,特定于选项卡的ID将是会话密钥的一部分。
后一种方法意味着您已启用了会话范围,并且由于您提到您正在使用JSF,因此可以支持对话,请查看@ConversationScoped的文档。关键是
Any JSF request has exactly one associated conversation.
具体的例子取决于你使用的实现,应该在网上找到大量的例子,我的想法只是让你知道它的支持