在struts2中打开新选项卡时,应显示已记录的页面

时间:2013-01-10 06:47:08

标签: struts2

我正在开发Struts2项目。 在该项目中,用户可以登录并执行其正常工作。 如果该用户打开新选项卡并键入我的项目URL,它将显示相同的页面(登录页面后)。 如何实现上述方案?

1 个答案:

答案 0 :(得分:1)

一种方式就像described here一样,在一个几乎与你相同的问题中(概念是相同的,只有.NET上的实现不同)。

  

每次传递Action时计算一个唯一值,然后放入   它在会话变量(即服务器端)中并使用它来提供   网页上的隐藏字段(即客户端)。

     

当页面回发(提交)包含隐藏字段的表单时,您   将查看页面字段和会话字段是否相同。

     

如果是:它是(唯一的OR)最后一页/标签打开。

     

如果不是:您正在尝试从不是的页面提交表单   最后一页打开。

这样,您将始终只有一个Web应用程序实例,如果您在新页面/选项卡中打开另一个Web应用程序实例,它将使前一个实例无效:只有最后打开的实例才有效(因为有多个隐藏字段,每个页面一个,但只有一个会话变量)。

如果您确实需要(是吗?)来阻止用户打开新标签而不是确保Web应用程序的单个实例,请从这个原则开始工作并最终返回此处(更好地使用某些代码)