从 SimpleFormController 扩展的 Controller Http 方法 - Post
提交表单并按浏览器后退按钮后,出现页面已过期,我已重新加载重新提交表单的页面。
但是,我需要当用户单击浏览器后退按钮时,他不会显示页面过期页面,而是将用户重定向到表单页面。
我目前想到了两种方法:
从 POST 更改为在 Controller 中获取并使用以下内容:
@Override
protected boolean isFormSubmission(HttpServletRequest request) {
return true;
}
第二种方法是在 Controller 的构造函数中定义缓存时间:
public VehicleDescController()
{
setCacheSeconds(1);
}
该应用程序确实很旧,并且使用基于 XML 的 spring 配置。 我对 Spring MVC 也比较陌生。
请帮我找出正确的方法。谢谢。
最佳答案
我通常喜欢在完成后将 Post 方法重定向到 Get 方法。您保留 Post 方法,但始终重定向到 Get 方法以显示结果页面。对于用户来说,这似乎是正常的获取操作,并且您不会遇到后退浏览器问题。
如果 Get 方法需要一些数据(例如:记录 ID),则 Post 可以将该数据存储在用户 session 中,并且 Get 方法可以在用户 session 中查找该值。这是一种将数据从 Post 方法“传递”到 Get 方法的简单方法,并且如果用户点击后退按钮再次返回页面,它会将这些数据保留在用户 session 中。
关于java - Spring SimpleFormController - 浏览器后退按钮不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14715474/