JSP Struts2中会话失效后发送注销配置值

0pizxfdo  于 2023-11-14  发布在  其他
关注(0)|答案(2)|浏览(133)

我有一个Struts 2 Web应用程序。
目前,当用户单击注销URL时,我们调用一个注销操作,并在该方法中调用session.invalidate()。如果成功,则调用logout.jsp
logout.jsp中,我们需要重定向到另一个链接。这个链接目前在JSP中是硬编码的。
测试和生产中的链接不同,因此在测试和生产中部署时,我们必须对此链接进行更改。我们有从外部文件获取值的实用程序。但是,由于会话无效,我们无法在会话中设置值,也无法在JSP中检索。
什么是最好的方法呢?

62o28rlo

62o28rlo1#

在启动时将值放入应用程序上下文中,并从同一位置检索它。
没有理由在会话中放置任何不是每个用户的值。

rbl8hiat

rbl8hiat2#

如果需要会话来执行此操作,可以在会话失效之前配置结果。
一旦配置了结果,您就可以对要重定向的操作或URL使用动态参数,您就不再需要JSP来执行重定向。
重定向结果可以在不呈现JSP的情况下完成此任务。
这个例子取自Redirecting to another action with unknown amount of parameters in Struts 2的答案。
也可以保存查询字符串而不是参数Map。

String params = request.getQueryString();

字符串
若要动态地将参数添加到redirectAction结果中,您应该在动态参数中使用OGNL。

<param name="actionName">${previousAction.name +'?'+ parameters}</param>


假设你有一个参数的getter,并从你保存以前的查询字符串,动作名称和命名空间的会话中初始化它。

相关问题