强制下载后未设置 ModelAttribute

ModelAttribute is not getting set after forcing a download

在强制下载后向 Spring 控制器中的 ModelAndView 添加对象似乎不起作用。

控制器方法中的代码

 ModelAndView view = new ModelAndView("");
 view.setViewName("pom-upload");
 view.addObject("uploadStatus", "Uploaded pom has been successfully processed!");
 response.setHeader("Content-Disposition", "attachment; filename=pom.xml");
 IOUtils.copy(inputStreamToDownload, response.getOutputStream());
 response.flushBuffer();
 return view;

文件下载成功。 但是当我尝试访问 JSP 中的“uploadStatus”消息时,比如

<c:out value="${uploadStatus}"></c:out>

div id="status-message" class="alert alert-success" role="alert">${uploadStatus}</div>

我没有收到来自 ${uploadStatus}

的消息

可能是什么原因,我该如何解决?

好的,听起来您想在用户下载文件后向他们显示一条消息。几个选项。

  1. 用户点击下载link。这将转到成功页面。成功页面使用刷新 header 或 javascript 来启动下载。所以成功来得有点早。

  2. 有关检测浏览器何时获取下载的一些想法,请参阅 Detect when browser receives file download