2011-03-22 95 views
3

我想用spring-mvc输出一些模型数据到pdf。它不工作,我想知道是否有人可以提供一些建议。Spring XML查看解析器配置

我有,包括以下弹簧servlet.xml文件:

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    <property name="order" value="1"/> 
    <property name="prefix" value="/WEB-INF/view/"/> 
    <property name="suffix" value=".jsp"/> 
</bean> 

<bean id="xmlViewResolver" class="org.springframework.web.servlet.view.XmlViewResolver"> 
    <property name="order" value="2"/> 
    <property name="location"> 
     <value>/WEB-INF/spring-pdf-views.xml</value> 
    </property> 
</bean> 

在弹簧的PDF文件views.xml我有这样的:

<bean id="MyPDF" class="com.example.MyPDFView"/> 

这是我MyPDFView类:

public class MyPDFView extends AbstractPdfView { 

@Override 
protected void buildPdfDocument(Map<String, Object> model, Document document, PdfWriter writer, 
     HttpServletRequest request, HttpServletResponse response) throws Exception { 

    @SuppressWarnings("unchecked") 
    Map<String, String> data = (Map<String, String>) model.get("modelData"); 

    Table table = new Table(2); 
    table.addCell("Date"); 
    table.addCell("Name"); 
    table.addCell(data.get("modelData.dateValue")); 
    table.addCell(data.get("modelData.nameValue")); 

    document.add(table); 
} 

}

终于在我的控制,我有:

@RequestMapping(value="/pdfInformation", method=RequestMethod.POST) 
public ModelAndView showPDF(ModelMap model, PDFInfo pdfInfo, BindingResult result) { 
     return new ModelAndView("MyPDF", model); 

}

我在输出看到的问题是,它从来没有得到的xmlViewResolver。它试图将MyPDF渲染为JSTL视图。这是从我的日志:

org.springframework.web.servlet.DispatcherServlet - Rendering view [org.springframework.web.servlet.view.JstlView: name 'MyPDF'; URL [/WEB-INF/view/MyPDF.jsp]] in DispatcherServlet with name 'spring' 

请someonme请帮助,让我知道我失踪。提前致谢。

回答

5

the Javadoc for InternalResourceViewResolver

注意:当链接ViewResolvers,如果InternalResourceViewResolver总是需要在最后,因为它会尝试解决任何视图名称,不管底层的资源是否实际存在。

交换您的解析器的顺序。

+0

非常感谢您的帮助。对此,我真的非常感激。 – blong824 2011-03-22 15:29:53