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(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.
- Since:
- 17.02.2003
- Author:
- Juergen Hoeller
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class AbstractCachingViewResolver
AbstractCachingViewResolver.CacheFilter -
Field Summary
Fields inherited from class UrlBasedViewResolver
FORWARD_URL_PREFIX, REDIRECT_URL_PREFIXFields inherited from class AbstractCachingViewResolver
DEFAULT_CACHE_LIMITFields inherited from class ApplicationObjectSupport
loggerFields inherited from interface Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE -
Constructor Summary
ConstructorsConstructorDescriptionSets the defaultview classtorequiredViewClass(): by defaultInternalResourceView, orJstlViewif the JSTL API is present.InternalResourceViewResolver(String prefix, String suffix) -
Method Summary
Modifier and TypeMethodDescriptionprotected AbstractUrlBasedViewCreates a new View instance of the specified view class and configures it.protected AbstractUrlBasedViewInstantiate the specified view class.protected Class<?> Return the required type of view for this resolver.voidsetAlwaysInclude(boolean alwaysInclude) Specify whether to always include the view rather than forward to it.Methods inherited from class 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, setViewNamesMethods inherited from class AbstractCachingViewResolver
clearCache, getCacheFilter, getCacheLimit, isCache, isCacheUnresolved, removeFromCache, resolveViewName, setCache, setCacheFilter, setCacheLimit, setCacheUnresolvedMethods inherited from class WebApplicationObjectSupport
getServletContext, getTempDir, getWebApplicationContext, initApplicationContext, initServletContext, isContextRequired, setServletContextMethods inherited from class ApplicationObjectSupport
getApplicationContext, getMessageSourceAccessor, obtainApplicationContext, requiredContextClass, setApplicationContext
-
Constructor Details
-
InternalResourceViewResolver
public InternalResourceViewResolver()Sets the defaultview classtorequiredViewClass(): by defaultInternalResourceView, orJstlViewif 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.
- See Also:
-
requiredViewClass
Description copied from class:UrlBasedViewResolverReturn the required type of view for this resolver. This implementation returnsAbstractUrlBasedView.- Overrides:
requiredViewClassin classUrlBasedViewResolver- See Also:
-
instantiateView
Description copied from class:UrlBasedViewResolverInstantiate the specified view class.The default implementation uses reflection to instantiate the class.
- Overrides:
instantiateViewin classUrlBasedViewResolver- Returns:
- a new instance of the view class
- See Also:
-
buildView
Description copied from class:UrlBasedViewResolverCreates 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
loadViewmethod after this method returns.Subclasses will typically call
super.buildView(viewName)first, before setting further properties themselves.loadViewwill then apply Spring lifecycle methods at the end of this process.- Overrides:
buildViewin 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:
-