Struts 1 的浏览器后退按钮对用户不友好:有什么解决方案吗?
我继承了一个使用 Struts 1 的 Java 网站。目前,如果在旅程中途按下浏览器后退按钮,他们会收到“网页已过期”错误。
从我有限的理解来看,这似乎是Struts设计中的一个缺陷——每个页面都是一个表单。 有没有办法解决这个问题,或者唯一的方法是迁移到不同的 MVC 框架(struts2、springMVC)?
I have inherited a Java website that uses Struts 1. Currently if the brosers back button is pressed midway through a journey they get a 'Webpage has expired' error.
From my limited understanding, this seems to be a flaw in the design of Struts - every page is a form. Is there anyway to get around the problem, or would the only way be migrating to a different MVC framework (struts2, springMVC)?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这确实不是 Struts 的问题。 显然,构建这个的人不相信 Post/Redirect/Get模式,而是直接提供一个页面来响应表单提交。
您可以通过将
redirect="true"
应用于您的操作转发来更改此行为:请参阅 Struts 用户指南 了解更多信息。
This is not a Struts problem, really. Apparently, the guy who built this did not believe in the Post/Redirect/Get pattern, and instead serves up a page directly in response to a form submission.
You can change this behavior by applying
redirect="true"
to your action forwards:See the Struts user guide for more information.
我认为 struts 中没有任何固有的东西可以做到这一点。 听起来以前的开发人员试图创建某种向导。 正确的方法是将向导中的待处理结果存储在会话中,并在每次表单提交后执行完整重定向。
I don't think there's anything inherent in struts that does that. It sounds like the previous developer tried to create some kind of wizard. The proper way to do it, would be to store the pending results in the wizard in a session, and do a full redirect after every form submission.