在我的Web应用程序中,我使用JSP和XSL。已配置视图用于JSP的InternalResourceViewRelover和用于XSL文件的XSLTViewResolver。应用程序在解析视图时出错,它总是尝试使用订单1视图解析器解析视图。如果订单1解析器无法解析其不适用于订单2视图解析程序。
以下是配置
<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<beans:property name="order" value="2" />
<beans:property name="prefix" value="/WEB-INF/views/" />
<beans:property name="suffix" value=".jsp" />
</beans:bean>
<beans:bean class="org.springframework.web.servlet.view.xslt.XsltViewResolver">
<beans:property name="order" value="1" />
<beans:property name="prefix" value="/WEB-INF/xsl/" />
<beans:property name="suffix" value=".xsl" />
<beans:property name="viewClass" value="org.springframework.web.servlet.view.xslt.XsltView"/>
<beans:property name="sourceKey" value="obj"/>
</beans:bean>
如何解决这个问题?
答案 0 :(得分:0)
您可以扩展类XsltView并覆盖方法checkResource
package my.xslt;
import java.util.Locale;
public class XsltView extends org.springframework.web.servlet.view.xslt.XsltView {
@Override
public boolean checkResource(Locale locale) throws Exception {
if (getServletContext().getResource(getUrl()) != null) {
return true;
}
return false;
}
}
更改配置
<beans:bean class="org.springframework.web.servlet.view.xslt.XsltViewResolver">
<beans:property name="viewClass" value="my.xslt.XsltView"/>
问题的原因是方法checkResource总是返回true。