KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I am needing to the get the rendered output of Spring 3.1 MVC View into a String (for sending to a PDF converter, or to a MIME email, etc...) and I have been using the following code: This is injected into the Controller @Autowired TilesViewResolver viewResolver; And the following helper method: private String renderViewToString(ModelMap map, HttpServletRequest request, HttpServletResponse httpServletResponse, final String viewName) { final StringWriter html = new StringWriter(); View pdfView = new View() { @Override public String getContentType() { return "application/pdf"; } @Override public void render(Map<String, ?> model, HttpServletRequest request, HttpServletResponse response) throws Exception { HttpServletResponseWrapper wrapper = new HttpServletResponseWrapper(response) { @Override public PrintWriter getWriter() throws IOException { return new PrintWriter(html); } }; View realView = viewResolver.resolveViewName(viewName, Locale.US); Map<String, Object> newModel = new HashMap<String, Object>(model); newModel.put("pdfMode", Boolean.TRUE); realView.render(newModel, request, wrapper); } }; try { pdfView.render(map, request, httpServletResponse); } catch (Exception e) { // Ignored for now } return html.toString(); } Credit to Ted Young and his <a href="http://code.google.com/p/ted-young/source/browse/trunk/blog.springmvc/src/main/java/me/tedyoung/blog/support/HTML2PDFViewResolver.java" rel="norefe
Tags (comma-separated)
Save Edits
Cancel