java.lang.Object | |||
↳ | org.springframework.context.support.ApplicationObjectSupport | ||
↳ | org.springframework.web.context.support.WebApplicationObjectSupport | ||
↳ | org.springframework.web.servlet.view.AbstractView |
Known Direct Subclasses |
Abstract base class for View
implementations. Subclasses should be JavaBeans, to allow for
convenient configuration as Spring-managed bean instances.
Provides support for static attributes, to be made available to the view, with a variety of ways to specify them. Static attributes will be merged with the given dynamic attributes (the model that the controller returned) for each render operation.
Extends WebApplicationObjectSupport
, which will be helpful to
some views. Subclasses just need to implement the actual rendering.
Constants | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
String | DEFAULT_CONTENT_TYPE | Default content type. |
[Expand]
Inherited Fields | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
org.springframework.context.support.ApplicationObjectSupport
| |||||||||||
From interface
org.springframework.web.servlet.View
|
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Add static data to this view, exposed in each view.
| |||||||||||
Allow Map access to the static attributes of this view,
with the option to add or override specific entries.
| |||||||||||
Return the view's name.
| |||||||||||
Return the content type for this view.
| |||||||||||
Return the name of the RequestContext attribute, if any.
| |||||||||||
Return the static attributes for this view.
| |||||||||||
Prepares the view given the specified model, merging it with static
attributes and a RequestContext attribute, if necessary.
| |||||||||||
Set static attributes for this view from a
java.util.Properties object. | |||||||||||
Set static attributes as a CSV string.
| |||||||||||
Set static attributes for this view from a Map.
| |||||||||||
Set the view's name.
| |||||||||||
Set the content type for this view.
| |||||||||||
Set the name of the RequestContext attribute for this view.
| |||||||||||
Protected Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Create a RequestContext to expose under the specified attribute name.
| |||||||||||
Create a temporary OutputStream for this view.
| |||||||||||
Expose the model objects in the given map as request attributes.
| |||||||||||
Return whether this view generates download content
(typically binary content like PDF or Excel files).
| |||||||||||
Prepare the given response for rendering.
| |||||||||||
Subclasses must implement this method to actually render the view.
| |||||||||||
Write the given temporary OutputStream to the HTTP response.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
org.springframework.web.context.support.WebApplicationObjectSupport
| |||||||||||
From class
org.springframework.context.support.ApplicationObjectSupport
| |||||||||||
From class
java.lang.Object
| |||||||||||
From interface
org.springframework.beans.factory.BeanNameAware
| |||||||||||
From interface
org.springframework.context.ApplicationContextAware
| |||||||||||
From interface
org.springframework.web.context.ServletContextAware
| |||||||||||
From interface
org.springframework.web.servlet.View
|
Default content type. Overridable as bean property.
Add static data to this view, exposed in each view.
"Static" attributes are fixed attributes that are specified in the View instance configuration. "Dynamic" attributes, on the other hand, are values passed in as part of the model.
Must be invoked before any calls to render
.
name | the name of the attribute to expose |
---|---|
value | the attribute value to expose |
Allow Map access to the static attributes of this view, with the option to add or override specific entries.
Useful for specifying entries directly, for example via "attributesMap[myKey]". This is particularly useful for adding or overriding entries in child view definitions.
Return the view's name. Should never be null
,
if the view was correctly configured.
Return the content type for this view.
null
if not predetermined.
Return the name of the RequestContext attribute, if any.
Return the static attributes for this view. Handy for testing.
Returns an unmodifiable Map, as this is not intended for manipulating the Map but rather just for checking the contents.
Prepares the view given the specified model, merging it with static attributes and a RequestContext attribute, if necessary. Delegates to renderMergedOutputModel for the actual rendering.
model | Map with name Strings as keys and corresponding model
objects as values (Map can also be null in case of empty model) |
---|---|
request | current HTTP request |
response | HTTP response we are building |
Exception |
---|
Set static attributes for this view from a
java.util.Properties
object.
"Static" attributes are fixed attributes that are specified in the View instance configuration. "Dynamic" attributes, on the other hand, are values passed in as part of the model.
This is the most convenient way to set static attributes. Note that static attributes can be overridden by dynamic attributes, if a value with the same name is included in the model.
Can be populated with a String "value" (parsed via PropertiesEditor) or a "props" element in XML bean definitions.
Set static attributes as a CSV string. Format is: attname0={value1},attname1={value1}
"Static" attributes are fixed attributes that are specified in the View instance configuration. "Dynamic" attributes, on the other hand, are values passed in as part of the model.
IllegalArgumentException |
---|
Set static attributes for this view from a Map. This allows to set any kind of attribute values, for example bean references.
"Static" attributes are fixed attributes that are specified in the View instance configuration. "Dynamic" attributes, on the other hand, are values passed in as part of the model.
Can be populated with a "map" or "props" element in XML bean definitions.
attributes | Map with name Strings as keys and attribute objects as values |
---|
Set the view's name. Helpful for traceability.
Framework code must call this when constructing views.
beanName | the name of the bean in the factory. Note that this name is the actual bean name used in the factory, which may differ from the originally specified name: in particular for inner bean names, the actual bean name might have been made unique through appending "#..." suffixes. Use the BeanFactoryUtils#originalBeanName(String) method to extract the original bean name (without suffix), if desired. |
---|
Set the content type for this view. Default is "text/html;charset=ISO-8859-1".
May be ignored by subclasses if the view itself is assumed to set the content type, e.g. in case of JSPs.
Set the name of the RequestContext attribute for this view. Default is none.
Create a RequestContext to expose under the specified attribute name.
Default implementation creates a standard RequestContext instance for the given request and model. Can be overridden in subclasses for custom instances.
request | current HTTP request |
---|---|
model | combined output Map (never null ),
with dynamic values taking precedence over static attributes |
Create a temporary OutputStream for this view.
This is typically used as IE workaround, for setting the content length header from the temporary stream before actually writing the content to the HTTP response.
Expose the model objects in the given map as request attributes. Names will be taken from the model Map. This method is suitable for all resources reachable by javax.servlet.RequestDispatcher.
model | Map of model objects to expose |
---|---|
request | current HTTP request |
Exception |
---|
Return whether this view generates download content (typically binary content like PDF or Excel files).
The default implementation returns false
. Subclasses are
encouraged to return true
here if they know that they are
generating download content that requires temporary caching on the
client side, typically via the response OutputStream.
Prepare the given response for rendering.
The default implementation applies a workaround for an IE bug when sending download content via HTTPS.
request | current HTTP request |
---|---|
response | current HTTP response |
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.
model | combined output Map (never null ),
with dynamic values taking precedence over static attributes |
---|---|
request | current HTTP request |
response | current HTTP response |
Exception | if rendering failed |
---|
Write the given temporary OutputStream to the HTTP response.
response | current HTTP response |
---|---|
baos | the temporary OutputStream to write |
IOException | if writing/flushing failed |
---|