org.springframework.web.servlet.view
Class AbstractTemplateViewResolver

java.lang.Object
  extended by org.springframework.context.support.ApplicationObjectSupport
      extended by org.springframework.web.context.support.WebApplicationObjectSupport
          extended by org.springframework.web.servlet.view.AbstractCachingViewResolver
              extended by org.springframework.web.servlet.view.UrlBasedViewResolver
                  extended by org.springframework.web.servlet.view.AbstractTemplateViewResolver
All Implemented Interfaces:
Aware, ApplicationContextAware, Ordered, ServletContextAware, ViewResolver
Direct Known Subclasses:
FreeMarkerViewResolver, VelocityViewResolver

public class AbstractTemplateViewResolver
extends UrlBasedViewResolver

Abstract base class for template view resolvers, in particular for Velocity and FreeMarker views.

Provides a convenient way to specify AbstractTemplateView's exposure flags for request attributes, session attributes, and Spring's macro helpers.

Since:
1.1
Author:
Juergen Hoeller
See Also:
AbstractTemplateView, VelocityViewResolver, FreeMarkerViewResolver

Field Summary
 
Fields inherited from class org.springframework.web.servlet.view.UrlBasedViewResolver
FORWARD_URL_PREFIX, REDIRECT_URL_PREFIX
 
Fields inherited from class org.springframework.context.support.ApplicationObjectSupport
logger
 
Fields inherited from interface org.springframework.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
 
Constructor Summary
AbstractTemplateViewResolver()
           
 
Method Summary
protected  AbstractUrlBasedView buildView(String viewName)
          Creates a new View instance of the specified view class and configures it.
protected  Class requiredViewClass()
          Return the required type of view for this resolver.
 void setAllowRequestOverride(boolean allowRequestOverride)
          Set whether HttpServletRequest attributes are allowed to override (hide) controller generated model attributes of the same name.
 void setAllowSessionOverride(boolean allowSessionOverride)
          Set whether HttpSession attributes are allowed to override (hide) controller generated model attributes of the same name.
 void setExposeRequestAttributes(boolean exposeRequestAttributes)
          Set whether all request attributes should be added to the model prior to merging with the template.
 void setExposeSessionAttributes(boolean exposeSessionAttributes)
          Set whether all HttpSession attributes should be added to the model prior to merging with the template.
 void setExposeSpringMacroHelpers(boolean exposeSpringMacroHelpers)
          Set whether to expose a RequestContext for use by Spring's macro library, under the name "springMacroRequestContext".
 
Methods inherited from class org.springframework.web.servlet.view.UrlBasedViewResolver
canHandle, createView, getAttributesMap, getCacheKey, getContentType, getOrder, getPrefix, getRequestContextAttribute, getSuffix, getViewClass, getViewNames, initApplicationContext, isRedirectContextRelative, isRedirectHttp10Compatible, loadView, setAttributes, setAttributesMap, setContentType, setExposePathVariables, setOrder, setPrefix, setRedirectContextRelative, setRedirectHttp10Compatible, setRequestContextAttribute, setSuffix, setViewClass, setViewNames
 
Methods inherited from class org.springframework.web.servlet.view.AbstractCachingViewResolver
clearCache, isCache, isCacheUnresolved, removeFromCache, resolveViewName, setCache, 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, requiredContextClass, setApplicationContext
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractTemplateViewResolver

public AbstractTemplateViewResolver()
Method Detail

requiredViewClass

protected Class requiredViewClass()
Description copied from class: UrlBasedViewResolver
Return the required type of view for this resolver. This implementation returns AbstractUrlBasedView.

Overrides:
requiredViewClass in class UrlBasedViewResolver
See Also:
AbstractUrlBasedView

setExposeRequestAttributes

public void setExposeRequestAttributes(boolean exposeRequestAttributes)
Set whether all request attributes should be added to the model prior to merging with the template. Default is "false".

See Also:
AbstractTemplateView.setExposeRequestAttributes(boolean)

setAllowRequestOverride

public void setAllowRequestOverride(boolean allowRequestOverride)
Set whether HttpServletRequest attributes are allowed to override (hide) controller generated model attributes of the same name. Default is "false", which causes an exception to be thrown if request attributes of the same name as model attributes are found.

See Also:
AbstractTemplateView.setAllowRequestOverride(boolean)

setExposeSessionAttributes

public void setExposeSessionAttributes(boolean exposeSessionAttributes)
Set whether all HttpSession attributes should be added to the model prior to merging with the template. Default is "false".

See Also:
AbstractTemplateView.setExposeSessionAttributes(boolean)

setAllowSessionOverride

public void setAllowSessionOverride(boolean allowSessionOverride)
Set whether HttpSession attributes are allowed to override (hide) controller generated model attributes of the same name. Default is "false", which causes an exception to be thrown if session attributes of the same name as model attributes are found.

See Also:
AbstractTemplateView.setAllowSessionOverride(boolean)

setExposeSpringMacroHelpers

public void setExposeSpringMacroHelpers(boolean exposeSpringMacroHelpers)
Set whether to expose a RequestContext for use by Spring's macro library, under the name "springMacroRequestContext". Default is "true".

See Also:
AbstractTemplateView.setExposeSpringMacroHelpers(boolean)

buildView

protected AbstractUrlBasedView buildView(String viewName)
                                  throws Exception
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 class UrlBasedViewResolver
Parameters:
viewName - the name of the view to build
Returns:
the View instance
Throws:
Exception - if the view couldn't be resolved
See Also:
UrlBasedViewResolver.loadView(String, java.util.Locale)