我配置InternalResourceViewResolver和XSLTViewResolver时无法解析视图?

时间:2013-10-11 07:08:00

标签: spring xslt spring-mvc

在我的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>

如何解决这个问题?

1 个答案:

答案 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。