我继承了一个使用Struts 1的Java网站。目前,如果在旅途中途按下了“brosers back”按钮,则会出现“网页已过期”错误。
从我有限的理解,这似乎是Struts设计中的一个缺陷 - 每个页面都是一个表单。是否有解决问题的方法,或者唯一的方法是迁移到不同的MVC框架(struts2,springMVC)?
答案 0 :(得分:8)
这确实不是Struts问题。显然,构建它的人不相信Post/Redirect/Get模式,而是直接提交页面以响应表单提交。
您可以通过将redirect="true"
应用于您的操作转发来更改此行为:
<action ... >
<forward name="success"
contextRelative="true"
path="/moduleB/index.do"
redirect="true"/>
</action>
有关详细信息,请参阅Struts user guide。
答案 1 :(得分:1)
我认为struts中没有固有的东西可以做到这一点。这听起来像以前的开发人员试图创建某种向导。正确的方法是在会话中将待处理结果存储在向导中,并在每次提交表单后进行完全重定向。