0

在我的 Web 应用程序中,我同时使用 JSP 和 XSL。为 JSP 配置了视图 InternalResourceViewRelover,为 XSL 文件配置了 XSLTViewResolver。应用程序在解析视图时出错,它总是尝试使用 order 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>

如何解决这个问题?

4

1 回答 1

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。

于 2013-10-21T11:12:49.603 回答