在Spring控制器中生成PDF重定向到新映射之后

时间:2016-04-29 09:30:29

标签: java ajax spring pdf

在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");
    }

请给我解决方案...

1 个答案:

答案 0 :(得分:0)

发布了一个很好的解决方案here。将第一个请求发送到创建PDF的服务器时,另外发送一个 download-token ,然后服务器可以在生成PDF后将其添加到响应对象中:

response.addCookie(new Cookie("downloadToken", downloadToken));

与此同时,客户端正在轮询并等待查看服务器何时设置downloadToken(同时服务器已完成生成PDF)。然后客户端可以重定向到新映射。

或者,也可以让客户端在提交第一个请求后等待几秒钟,然后在客户端进行重定向。然而,这可能导致客户端在实际生成PDF之前调用重定向。