springmvc – 提出请求,并留在同一页面,以防万一错误

我需要在我的控制器中创build一个动作来生成excel文件。 问题是,如果发生错误,页面被改变,但我想留在显示该错误的同一页面上。

我在我的控制器中有这个动作:

@RequestMapping(value="/excel", method = RequestMethod.POST) public String generateExcel(HttpServletResponse response, Model model) 

我想在错误的情况下留在同一页面上:

  if(noError){ // generate Excel response.setHeader("Content-disposition","attachment; filename= "excel.xls"); response.setContentType("application/vnd.ms-excel"); //... return ""; } else { // stay on the same page and show error // TODO return ?; } 

我的Excel的一代工作正常,但出现错误时,显示新的页面。 我不能让ajax调用来生成excel。 有人能帮我吗?

使用GetMapping:

 @GetMapping(value = "/download") public void download( @RequestParam("fileReference") String fileReference, // sample param HttpServletResponse response) throws IOException { Assert.hasText(fileReference); try { response.setContentType("application/octet-stream"); response.addHeader("Content-Disposition", "attachment; filename=myfilename.pdf"); response.setContentLength(...); response.setBufferSize(...); response.getOutputStream().write(...); } finally { response.getOutputStream().close(); } } 

然后打开你的链接使用

 target="_blank" 

redirect到相同的页面可以是一个选项。 请记住,如果您刷新页面,则会丢失页面中的所有信息。 我只是说,如果这个控制器将负责储蓄。