## org.springframework.web.servlet.view.velocity
Class VelocityLayoutViewResolver

    java.lang.Object
      org.springframework.context.support.ApplicationObjectSupport
          org.springframework.web.context.support.WebApplicationObjectSupport
              org.springframework.web.servlet.view.AbstractCachingViewResolver
                  org.springframework.web.servlet.view.UrlBasedViewResolver
                      org.springframework.web.servlet.view.AbstractTemplateViewResolver
                          org.springframework.web.servlet.view.velocity.VelocityViewResolver
                              org.springframework.web.servlet.view.velocity.VelocityLayoutViewResolver

All Implemented Interfaces:
  ApplicationContextAware, Ordered, ServletContextAware, ViewResolver

    public class VelocityLayoutViewResolver

extends VelocityViewResolver

Convenience subclass of VelocityViewResolver, adding support for VelocityLayoutView and its properties.

See VelocityViewResolver's javadoc for general usage info.

Since:
  1.2.7
Author:
  Juergen Hoeller
See Also:
  `VelocityViewResolver`, `VelocityLayoutView`, `setLayoutUrl(java.lang.String)`, `setLayoutKey(java.lang.String)`, `setScreenContentKey(java.lang.String)`

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
`VelocityLayoutViewResolver()`

Method Summary
`protected AbstractUrlBasedView` `buildView(String viewName)` Creates a new View instance of the specified view class and configures it.
`protected Class` `requiredViewClass()` Requires VelocityLayoutView.
`void` `setLayoutKey(String layoutKey)` Set the context key used to specify an alternate layout to be used instead of the default layout.
`void` `setLayoutUrl(String layoutUrl)` Set the layout template to use.
`void` `setScreenContentKey(String screenContentKey)` Set the name of the context key that will hold the content of the screen within the layout template.

Methods inherited from class org.springframework.web.servlet.view.velocity.VelocityViewResolver
`initApplicationContext, setDateToolAttribute, setNumberToolAttribute, setToolboxConfigLocation`

Methods inherited from class org.springframework.web.servlet.view.AbstractTemplateViewResolver
`setAllowRequestOverride, setAllowSessionOverride, setExposeRequestAttributes, setExposeSessionAttributes, setExposeSpringMacroHelpers`

Methods inherited from class org.springframework.web.servlet.view.UrlBasedViewResolver

`canHandle, createView, getAttributesMap, getCacheKey, getContentType, getOrder, getPrefix, getRequestContextAttribute, getSuffix, getViewClass, getViewNames, isRedirectContextRelative, isRedirectHttp10Compatible, loadView, setAttributes, setAttributesMap, setContentType, 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

### VelocityLayoutViewResolver

    public VelocityLayoutViewResolver()

Method Detail

### requiredViewClass

    protected Class requiredViewClass()

  Requires VelocityLayoutView.

  Overrides:
    `requiredViewClass` in class `VelocityViewResolver`
  See Also:
    `VelocityLayoutView`

### setLayoutUrl

    public void setLayoutUrl(String layoutUrl)

  Set the layout template to use. Default is "layout.vm".

  Parameters:
    `layoutUrl` - the template location (relative to the template root directory)
  See Also:
    `VelocityLayoutView.setLayoutUrl(java.lang.String)`

### setLayoutKey

    public void setLayoutKey(String layoutKey)

  Set the context key used to specify an alternate layout to be used instead of the default layout. Screen content templates can override the layout template that they wish to be wrapped with by setting this value in the template, for example:
  `#set( $layout = "MyLayout.vm" )`

  The default key is "layout", as illustrated above.

  Parameters:
    `layoutKey` - the name of the key you wish to use in your screen content templates to override the layout template
  See Also:
    `VelocityLayoutView.setLayoutKey(java.lang.String)`

### setScreenContentKey

    public void setScreenContentKey(String screenContentKey)

  Set the name of the context key that will hold the content of the screen within the layout template. This key must be present in the layout template for the current screen to be rendered.

  Default is "screen_content": accessed in VTL as `$screen_content`.

  Parameters:
    `screenContentKey` - the name of the screen content key to use
  See Also:
    `VelocityLayoutView.setScreenContentKey(java.lang.String)`

### 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 `VelocityViewResolver`
  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)`