Javascript 如何在SpringMVC中允许重复提交?

Javascript 如何在SpringMVC中允许重复提交?,javascript,java,spring,jsp,spring-mvc,Javascript,Java,Spring,Jsp,Spring Mvc,我知道PRG模式可以防止页面重复提交(POST)。但是我有一个带有window.history.back()链接的JSP页面。此链接会将用户带回上一个发布的页面,但所有浏览器都会显示重新提交警告,并建议用户按重新加载按钮。我想允许用户返回到该页面,而无需任何确认。POST控制器执行搜索。在我使用的JSP页面中: <a href="javascript:;" onclick="window.history.back();">...</a> ****我不想阻止重新提交。我现

我知道PRG模式可以防止页面重复提交(POST)。但是我有一个带有window.history.back()链接的JSP页面。此链接会将用户带回上一个发布的页面,但所有浏览器都会显示重新提交警告,并建议用户按重新加载按钮。我想允许用户返回到该页面,而无需任何确认。POST控制器执行搜索。在我使用的JSP页面中:

<a href="javascript:;" onclick="window.history.back();">...</a>

****我不想阻止重新提交。

我现在无法尝试,所以请以下面的示例作为“指南”。。。无论如何,我认为您应该在ModelAttribute中使用,以保持您的
模型仍然使用
window.history.back()
链接

因此,您可以修改
控制器
如下:

@Controller
@SessionAttributes("searchObj")
public class YourController {
    @RequestMapping(value="search.htm")
    public ModelAndView searchResults(@ModelAtrribute(value="search") Serach search){
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.setViewName("search-result-page");

        modelAndView.addObject("search", search);
        modelAndView.addObject("searchObj", search);

        return modelAndView;
    }
}

不能,您必须选择是离开history.back()还是提交帖子。因此,您可以使用页面重定向更改第一个,使用GET submit更改第二个。@Alessandro我尝试了第二个解决方案,但在返回GET后,ModelAttribute为空,没有像第一个调用那样填充。
@Controller
@SessionAttributes("searchObj")
public class YourController {
    @RequestMapping(value="search.htm")
    public ModelAndView searchResults(@ModelAtrribute(value="search") Serach search){
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.setViewName("search-result-page");

        modelAndView.addObject("search", search);
        modelAndView.addObject("searchObj", search);

        return modelAndView;
    }
}