Class InternalResourceViewResolver
- All Implemented Interfaces:
Aware
,ApplicationContextAware
,Ordered
,ServletContextAware
,ViewResolver
UrlBasedViewResolver
that supports
InternalResourceView
(i.e. Servlets and JSPs) and subclasses
such as JstlView
.
The view class for all views generated by this resolver can be specified
via UrlBasedViewResolver.setViewClass(java.lang.Class<?>)
. See UrlBasedViewResolver
's javadoc for details.
The default is InternalResourceView
, or JstlView
if the
JSTL API is present.
BTW, it's good practice to put JSP files that just serve as views under WEB-INF, to hide them from direct access (for example, via a manually entered URL). Only controllers will be able to access them then.
Note: When chaining ViewResolvers, an InternalResourceViewResolver always needs to be last, as it will attempt to resolve any view name, no matter whether the underlying resource actually exists.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.springframework.web.servlet.view.AbstractCachingViewResolver
AbstractCachingViewResolver.CacheFilter
-
Field Summary
Fields inherited from class org.springframework.web.servlet.view.UrlBasedViewResolver
FORWARD_URL_PREFIX, REDIRECT_URL_PREFIX
Fields inherited from class org.springframework.web.servlet.view.AbstractCachingViewResolver
DEFAULT_CACHE_LIMIT
Fields inherited from class org.springframework.context.support.ApplicationObjectSupport
logger
Fields inherited from interface org.springframework.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
-
Constructor Summary
ConstructorDescriptionSets the defaultview class
torequiredViewClass()
: by defaultInternalResourceView
, orJstlView
if the JSTL API is present.InternalResourceViewResolver
(String prefix, String suffix) -
Method Summary
Modifier and TypeMethodDescriptionprotected AbstractUrlBasedView
Creates a new View instance of the specified view class and configures it.protected AbstractUrlBasedView
Instantiate the specified view class.protected Class<?>
Return the required type of view for this resolver.void
setAlwaysInclude
(boolean alwaysInclude) Specify whether to always include the view rather than forward to it.Methods inherited from class org.springframework.web.servlet.view.UrlBasedViewResolver
applyLifecycleMethods, canHandle, createView, getAttributesMap, getCacheKey, getContentType, getExposeContextBeansAsAttributes, getExposedContextBeanNames, getExposePathVariables, getOrder, getPrefix, getRedirectHosts, getRequestContextAttribute, getSuffix, getViewClass, getViewNames, initApplicationContext, isRedirectContextRelative, isRedirectHttp10Compatible, loadView, setAttributes, setAttributesMap, setContentType, setExposeContextBeansAsAttributes, setExposedContextBeanNames, setExposePathVariables, setOrder, setPrefix, setRedirectContextRelative, setRedirectHosts, setRedirectHttp10Compatible, setRequestContextAttribute, setSuffix, setViewClass, setViewNames
Methods inherited from class org.springframework.web.servlet.view.AbstractCachingViewResolver
clearCache, getCacheFilter, getCacheLimit, isCache, isCacheUnresolved, removeFromCache, resolveViewName, setCache, setCacheFilter, setCacheLimit, setCacheUnresolved
Methods inherited from class org.springframework.web.context.support.WebApplicationObjectSupport
getServletContext, getTempDir, getWebApplicationContext, initApplicationContext, initServletContext, isContextRequired, setServletContext
Methods inherited from class org.springframework.context.support.ApplicationObjectSupport
getApplicationContext, getMessageSourceAccessor, obtainApplicationContext, requiredContextClass, setApplicationContext
-
Constructor Details
-
InternalResourceViewResolver
public InternalResourceViewResolver()Sets the defaultview class
torequiredViewClass()
: by defaultInternalResourceView
, orJstlView
if the JSTL API is present. -
InternalResourceViewResolver
- Parameters:
prefix
- the prefix that gets prepended to view names when building a URLsuffix
- the suffix that gets appended to view names when building a URL- Since:
- 4.3
-
-
Method Details
-
setAlwaysInclude
public void setAlwaysInclude(boolean alwaysInclude) Specify whether to always include the view rather than forward to it.Default is "false". Switch this flag on to enforce the use of a Servlet include, even if a forward would be possible.
-
requiredViewClass
Description copied from class:UrlBasedViewResolver
Return the required type of view for this resolver. This implementation returnsAbstractUrlBasedView
.- Overrides:
requiredViewClass
in classUrlBasedViewResolver
- See Also:
-
instantiateView
Description copied from class:UrlBasedViewResolver
Instantiate the specified view class.The default implementation uses reflection to instantiate the class.
- Overrides:
instantiateView
in classUrlBasedViewResolver
- Returns:
- a new instance of the view class
- See Also:
-
buildView
Description copied from class:UrlBasedViewResolver
Creates a new View instance of the specified view class and configures it. Does not perform any lookup for pre-defined View instances.Spring lifecycle methods as defined by the bean container do not have to be called here; those will be applied by the
loadView
method after this method returns.Subclasses will typically call
super.buildView(viewName)
first, before setting further properties themselves.loadView
will then apply Spring lifecycle methods at the end of this process.- Overrides:
buildView
in classUrlBasedViewResolver
- Parameters:
viewName
- the name of the view to build- Returns:
- the View instance
- Throws:
Exception
- if the view couldn't be resolved- See Also:
-