0

私の 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>

この問題を解決するには?

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 に答える