我正在使用redirectAttributes将成功或失败消息传递给重定向的网址。这样我只能在重定向页面上显示成功或失败消息一次。如果再次刷新同一页面,则该消息将不会再次出现。这没关系,在tomcat的正常部署中工作正常。
现在我们已经设置了一个集群环境,我们已经部署了Web应用程序。但在这种情况下,redirectAttributes工作得很奇怪。有时候它有效,有时却没有。
以下是我用来将flashAttribute添加到重定向属性的代码行。
redirectAttributes.addFlashAttribute("successMsg", message);
我使用Spring 3.1.0.RELEASE版本和Tomcat 7用于集群环境。
我想知道这个问题是否有解决方法。是否有更新的Spring版本支持在集群环境中使用redirectAttributes? 如果还有其他方法可以执行此类操作,您也可以告诉我。
提前致谢。
答案 0 :(得分:8)
听起来您的客户端的HTTP会话可能无法在Tomcat服务器之间共享。由于Spring Flash属性为stored in the session,因此您可能会遇到以下情况:
如果发送客户端请求的服务器不确定,则可能会间歇性地遇到此问题。例如,如果上述两个请求碰巧都发送到serverA,那么flash属性将正常工作,因为会话将是相同的。
如果是这种情况,那么您需要一种机制来: