## org.springframework.web.servlet.view.xml
Class MarshallingView

    java.lang.Object
      org.springframework.context.support.ApplicationObjectSupport
          org.springframework.web.context.support.WebApplicationObjectSupport
              org.springframework.web.servlet.view.AbstractView
                  org.springframework.web.servlet.view.xml.MarshallingView

All Implemented Interfaces:
  BeanNameAware, ApplicationContextAware, ServletContextAware, View

    public class MarshallingView

extends AbstractView

Spring-MVC `View` that allows for response context to be rendered as the result of marshalling by a `Marshaller`.

The Object to be marshalled is supplied as a parameter in the model and then detected during response rendering. Users can either specify a specific entry in the model via the `sourceKey` property or have Spring locate the Source object.

Since:
  3.0
Author:
  Arjen Poutsma

Field Summary
`static String` `DEFAULT_CONTENT_TYPE` Default content type.

Fields inherited from class org.springframework.context.support.ApplicationObjectSupport
`logger`

Fields inherited from interface org.springframework.web.servlet.View
`RESPONSE_STATUS_ATTRIBUTE`

Constructor Summary
`MarshallingView()` Constructs a new `MarshallingView` with no `Marshaller` set.
`MarshallingView(Marshaller marshaller)` Constructs a new `MarshallingView` with the given `Marshaller` set.

Method Summary
`protected void` `initApplicationContext()` Subclasses can override this for custom initialization behavior.
`protected Object` `locateToBeMarshalled(Map model)` Locates the object to be marshalled.
`protected void` `renderMergedOutputModel(Map model, HttpServletRequest request, HttpServletResponse response)` Subclasses must implement this method to actually render the view.
`void` `setMarshaller(Marshaller marshaller)` Sets the `Marshaller` to be used by this view.
`void` `setModelKey(String modelKey)` Set the name of the model key that represents the object to be marshalled.

Methods inherited from class org.springframework.web.servlet.view.AbstractView
`addStaticAttribute, createRequestContext, createTemporaryOutputStream, exposeModelAsRequestAttributes, generatesDownloadContent, getAttributesMap, getBeanName, getContentType, getRequestContextAttribute, getStaticAttributes, prepareResponse, render, setAttributes, setAttributesCSV, setAttributesMap, setBeanName, setContentType, setRequestContextAttribute, toString, writeToResponse`

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, wait, wait, wait`

Field Detail

### DEFAULT_CONTENT_TYPE

    public static final String DEFAULT_CONTENT_TYPE

  Default content type. Overridable as bean property.

  See Also:
    Constant Field Values

Constructor Detail

### MarshallingView

    public MarshallingView()

  Constructs a new `MarshallingView` with no `Marshaller` set. The marshaller must be set after construction by invoking `setMarshaller(Marshaller)`.

### MarshallingView

    public MarshallingView(Marshaller marshaller)

  Constructs a new `MarshallingView` with the given `Marshaller` set.

Method Detail

### setMarshaller

    public void setMarshaller(Marshaller marshaller)

  Sets the `Marshaller` to be used by this view.

### setModelKey

    public void setModelKey(String modelKey)

  Set the name of the model key that represents the object to be marshalled. If not specified, the model map will be searched for a supported value type.

  See Also:
    `Marshaller.supports(Class)`

### initApplicationContext

    protected void initApplicationContext()
                                   throws BeansException

  Description copied from class: `ApplicationObjectSupport`
  Subclasses can override this for custom initialization behavior.

  The default implementation is empty. Called by `ApplicationObjectSupport.initApplicationContext(org.springframework.context.ApplicationContext)`.

  Overrides:
    `initApplicationContext` in class `ApplicationObjectSupport`
  Throws:
    `ApplicationContextException` - in case of initialization errors
    `BeansException` - if thrown by ApplicationContext methods
  See Also:
    `ApplicationObjectSupport.setApplicationContext(org.springframework.context.ApplicationContext)`

### renderMergedOutputModel

    protected void renderMergedOutputModel(Map model,
                                           HttpServletRequest request,
                                           HttpServletResponse response)
                                    throws Exception

  Description copied from class: `AbstractView`
  Subclasses must implement this method to actually render the view.

  The first step will be preparing the request: In the JSP case, this would mean setting model objects as request attributes. The second step will be the actual rendering of the view, for example including the JSP via a RequestDispatcher.

  Specified by:
    `renderMergedOutputModel` in class `AbstractView`
  Parameters:
    `model` - combined output Map (never `null`), with dynamic values taking precedence over static attributes
    `request` - current HTTP request
    `response` - current HTTP response
  Throws:
    `Exception` - if rendering failed

### locateToBeMarshalled

    protected Object locateToBeMarshalled(Map model)
                                   throws ServletException

  Locates the object to be marshalled. The default implementation first attempts to look under the configured model key, if any, before attempting to locate an object of supported type.

  Parameters:
    `model` - the model Map
  Returns:
    the Object to be marshalled (or `null` if none found)
  Throws:
    `ServletException` - if the model object specified by the model key is not supported by the marshaller
  See Also:
    `setModelKey(String)`