Usually we view as to the parser configuration:
<bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean>
At this time InternalResourceViewResolver parsing component, the default will be parsed org.springframework.web.servlet.view.InternalResourceView view.
If added in appropriate package jstl classpath, as follows:
<dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.1.2</version> </dependency>
At this time InternalResourceViewResolver parsing component, the default will be parsed org.springframework.web.servlet.view.JstlView view.
Principles are as follows (if jstlPresent to true):
private static final boolean jstlPresent = ClassUtils.isPresent( "javax.servlet.jsp.jstl.core.Config", InternalResourceViewResolver.class.getClassLoader());
/** * Sets the default {@link #setViewClass view class} to {@link #requiredViewClass}: * by default {@link InternalResourceView}, or {@link JstlView} if the JSTL API * is present. */ public InternalResourceViewResolver() { Class<?> viewClass = requiredViewClass(); if (InternalResourceView.class == viewClass && jstlPresent) { viewClass = JstlView.class; } setViewClass(viewClass); }
We can specify the view class to be used (arranged viewClass InternalResourceViewResolver parsing component attribute to specify the parsed view class):
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /> <property name="prefix" value="/WEB-INF/jsp/" /> <property name="suffix" value=".jsp" /> </bean>
Specifies the view class may not be directly added jstl package, using default frame jstlview