2009-06-26 54 views
4

我继承了一个使用Struts 1的Java网站。目前,如果在途中按下brosers返回按钮,他们会得到一个'网页已过期'的错误。Struts 1对浏览器后退按钮不友好:任何解决方案?

从我有限的理解来看,这似乎是Struts设计中的一个缺陷 - 每一页都是一种形式。无论如何要解决这个问题,还是唯一的方法是迁移到不同的MVC框架(struts2,springMVC)?

回答

1

我不认为这有什么固有的struts。这听起来像以前的开发人员试图创建某种向导。正确的做法是在会话中将未决结果存储在向导中,并在每次提交表单后进行完全重定向。

+0

是的,它像一个向导,一系列页面1-> 2-> 3-> 4-> 5-> 6 但是页面2依赖于表格1中的数据。 你是什么意思?完成每个表单提交后的重定向'? – Amoeba 2009-06-26 14:53:48

8

这不是一个真正的Struts问题。显然,建立这个的人并不相信Post/Redirect/Get模式,而是直接响应表单提交来提供一个页面。

您可以通过应用redirect="true"到你的动作向前改变这种行为:

<action ... > 
    <forward name="success" 
     contextRelative="true" 
     path="/moduleB/index.do" 
     redirect="true"/> 
</action> 

更多信息,请参见Struts user guide