在Spring控制器映射中我编码生成PDF文件,生成pdf后,它应该重定向到另一个映射。但它不工作。添加了下面给出的代码。
@RequestMapping(value = "/closeJob")
public ModelAndView view(Model model, HttpServletRequest request,HttpServletResponse httpServletResponse) throws Exception {
VehicleDetails vehicleDetails = new VehicleDetails();
String i = request.getParameter("jCardNo");
vehicleDetails = serviceMasterDAO.getVehicle(Long.parseLong(i));
serviceMasterDAO.updateStatus(vehicleDetails);
Map<String, Object> map = new HashMap<String, Object>();
map.put("vehicleDetails",vehicleDetails);
PDFBuilder builder = new PDFBuilder();
builder.render(map, request, httpServletResponse);
return new ModelAndView("redirect:/viewJobCard.htm");
}
请给我解决方案...
答案 0 :(得分:0)
发布了一个很好的解决方案here。将第一个请求发送到创建PDF的服务器时,另外发送一个 download-token ,然后服务器可以在生成PDF后将其添加到响应对象中:
response.addCookie(new Cookie("downloadToken", downloadToken));
与此同时,客户端正在轮询并等待查看服务器何时设置downloadToken(同时服务器已完成生成PDF)。然后客户端可以重定向到新映射。
或者,也可以让客户端在提交第一个请求后等待几秒钟,然后在客户端进行重定向。然而,这可能导致客户端在实际生成PDF之前调用重定向。