如何在我的Spring MVC(3)Web应用程序中添加PDF视图?

时间:2012-03-12 12:22:23

标签: java spring model-view-controller pdf view

我有一个Spring MVC webapp,它使用JSP / JSTL生成报告。客户现在要求我生成一个PDF版本报告的链接,这些版本的布局略有不同(例如,失去分页,导航等)。

在我的servlet上下文中,我有:

<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
  <property name="mediaTypes">
    <map>
      <entry key="pdf" value="application/pdf"/>
      <entry key="html" value="text/html"/>
      <entry key="json" value="application/json"/>
    </map>
  </property>
  <property name="viewResolvers">
    <list>
      <bean class="org.springframework.web.servlet.view.BeanNameViewResolver"/>
      <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <property name="suffix" value=".jsp"/>
      </bean>
    </list>
  </property>
</bean>

这是从某个教程中获取的。这看起来像我的旧视图解析器,因为带有或不带有.html的GET由我的reportController(注释请求路径映射)处理并传递给JSP并正确呈现。 ReportController方法返回一个解析为JSP的字符串。

不知何故,我必须设置一个PDF视图,我可以自定义布局,也许使用CSS或XSLT。

现在,对reports / basic /或reports / basic.html的GET请求将返回JSP呈现,我需要能够执行GET请求以获取诸如reports / basic.pdf之类的URL上的PDF

1 个答案:

答案 0 :(得分:2)

创建PDF不属于Spring本身的范围。

您是否应该查看此Stack Overflow问题:Using itext to convert HTML to PDF。它讨论了如何从HTML页面创建PDF,例如使用ITextPd4mL

讨论了另一种方式here。它基于XSTL。

当然,您可以将您的解决方案集成到Spring应用程序中,但Spring不会为您提供额外的支持。