0

In my web application I use both JSPs and XSL. Configured view InternalResourceViewRelover for JSP and XSLTViewResolver for XSL files. Application is giving errors while resolving view, its always trying to resolve view with order 1 view resolver. If order 1 resolver is not able to resolve its not going for order 2 view resolver.

Below is the configuration

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

How to solve this issue?

Denim Datta
  • 3,740
  • 3
  • 27
  • 53
developer
  • 463
  • 2
  • 9
  • 19

1 Answers1

0

You can extend class XsltView and override the method 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;
    }
}

Change configuration

<beans:bean class="org.springframework.web.servlet.view.xslt.XsltViewResolver">
    <beans:property name="viewClass" value="my.xslt.XsltView"/>

The cause of problem is that the method checkResource always return true.

Matthew Green
  • 10,161
  • 4
  • 36
  • 54