如何使用Struts2 SessionAware使用现有会话

如何使用Struts2 SessionAware使用现有会话,session,struts2,session-state,sessionid,Session,Struts2,Session State,Sessionid,我们的操作类实现了SessionAware,在页面加载时,我们第一次将一些数据设置到会话(通过实现SessionAware)中。我们有一个功能可以使页面重新加载,在这种情况下,会话数据将变为null,当我进一步观察到,jsession id正在更改时,我认为这是导致问题的原因,请您分享您的想法,了解为什么会发生这种情况,如何强制我的struts2应用程序使用现有会话 此问题不会发生在我的本地环境中,只有在QA服务器上部署时才会出现(在unix环境中部署的tomcat服务器) 我们的应用程序使用t

我们的
操作类
实现了
SessionAware
,在页面加载时,我们第一次将一些数据设置到
会话
(通过实现
SessionAware
)中。我们有一个功能可以使页面重新加载,在这种情况下,会话数据将变为null,当我进一步观察到,jsession id正在更改时,我认为这是导致问题的原因,请您分享您的想法,了解为什么会发生这种情况,如何强制我的struts2应用程序使用现有会话

此问题不会发生在我的本地环境中,只有在QA服务器上部署时才会出现(在unix环境中部署的tomcat服务器)

我们的应用程序使用tomcat服务器


tomcat中的任何设置都可能导致这种情况吗?或者这与应用程序代码有关?

我在尝试将本地应用程序移动到服务器时遇到了同样的问题。如果这可以帮助您,请尝试:


页面重新加载是什么意思?可以显示代码吗?您是否使用
标记在jsp中设置会话?请确保在action classe中设置会话值。另一个解决方案是在设置@Aleksandr M之前检查现有会话值是否为null,比如说我在one.jsp中,在特定请求之后,获取并填充详细信息,并再次呈现one.jsp以显示最新数据,这清楚吗?@anu数据是在Action类中设置的,而不是在jsp中设置的。您是否使用默认的struts2拦截器堆栈?感谢您提供的快速解决方案,在我的情况下,这可能是由于tomcat中的设置,我将尝试弄清楚,如果您有解决方案,请将其放在这里,以便人们可以找到它。