2011-03-22 64 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