blo*_*824 3 java xml spring view resolver
我试图使用spring-mvc将一些模型数据输出到pdf.它不起作用,我想知道是否有人可以提供一些建议.
我有一个spring-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>
Run Code Online (Sandbox Code Playgroud)
在spring-pdf-views.xml文件中,我有:
<bean id="MyPDF" class="com.example.MyPDFView"/>
Run Code Online (Sandbox Code Playgroud)
这是我的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);
}
}
Run Code Online (Sandbox Code Playgroud)
}
最后在我的控制器中我有:
@RequestMapping(value="/pdfInformation", method=RequestMethod.POST)
public ModelAndView showPDF(ModelMap model, PDFInfo pdfInfo, BindingResult result) {
return new ModelAndView("MyPDF", model);
}
Run Code Online (Sandbox Code Playgroud)
}
我在输出中看到的问题是它永远不会到达xmlViewResolver.它试图将MyPDF渲染为JSTL视图.这来自我的日志:
<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>
Run Code Online (Sandbox Code Playgroud)
someonme请帮忙,让我知道我错过了什么.提前致谢.
从Javadoc for InternalResourceViewResolver:
注意:链接ViewResolvers时,InternalResourceViewResolver始终需要为last,因为它将尝试解析任何视图名称,无论底层资源是否确实存在.
交换解析器的顺序.
| 归档时间: |
|
| 查看次数: |
8559 次 |
| 最近记录: |