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.xslt.AbstractXsltView |
This class is deprecated.
since Spring 2.5; superseded by XsltView
and its
more flexible locateSource(Map
mechanism
Convenient superclass for views rendered using an XSLT stylesheet.
Subclasses typically must provide the Source
to transform
by overriding createXsltSource(Map
. Subclasses do not need to
concern themselves with XSLT other than providing a valid stylesheet location.
Properties:
stylesheetLocation
:
a Resource
pointing to the XSLT stylesheet
root
: the name of the root element; defaults to "DocRoot"
uriResolver
:
the URIResolver
to be used in the transform
errorListener
(optional):
the ErrorListener
implementation instance for custom handling of warnings and errors during TransformerFactory operations
indent
(optional): whether additional whitespace
may be added when outputting the result; defaults to true
cache
(optional): are templates to be cached; debug setting only; defaults to true
Note that setting "cache"
to false
will cause the template objects to be reloaded for each rendering. This is
useful during development, but will seriously affect performance in production
and is not thread-safe.
Constants | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
String | DEFAULT_ROOT | The default document root name | |||||||||
String | XML_CONTENT_TYPE | The default content type if no stylesheet specified |
[Expand]
Inherited Constants | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
org.springframework.web.servlet.view.AbstractView
|
[Expand]
Inherited Fields | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
org.springframework.context.support.ApplicationObjectSupport
| |||||||||||
From interface
org.springframework.web.servlet.View
|
Protected Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
This constructor sets the content type to "text/xml;charset=ISO-8859-1"
by default.
|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Reset the cached Templates object, if any.
| |||||||||||
Set whether to activate the template cache for this view.
| |||||||||||
Set the content type for this view.
| |||||||||||
Set an implementation of the
ErrorListener
interface for custom handling of transformation errors and warnings. | |||||||||||
Set whether the XSLT transformer may add additional whitespace when
outputting the result tree.
| |||||||||||
Set arbitrary transformer output properties to be applied to the stylesheet.
| |||||||||||
The document root element name.
| |||||||||||
Set the location of the XSLT stylesheet.
| |||||||||||
Specify the XSLT TransformerFactory class to use.
| |||||||||||
Set the URIResolver used in the transform.
| |||||||||||
Set whether to use the name of a given single model object as the
document root element name.
|
Protected Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Apply the specified parameters to the given Transformer.
| |||||||||||
Build a Transformer object for immediate use, based on the
given parameters.
| |||||||||||
Return the XML
Source to transform. | |||||||||||
Perform the actual transformation, writing to the HTTP response.
| |||||||||||
Perform the actual transformation, writing to the given result.
| |||||||||||
Return a Map of transformer parameters to be applied to the stylesheet.
| |||||||||||
Return a Map of transformer parameters to be applied to the stylesheet.
| |||||||||||
Return the location of the XSLT stylesheet, if any.
| |||||||||||
Load the stylesheet from the specified location.
| |||||||||||
Obtain the Templates object to use, based on the configured
stylesheet, either a cached one or a freshly built one.
| |||||||||||
Return the TransformerFactory used by this view.
| |||||||||||
Here we load our template, as we need the
ApplicationContext to do it. | |||||||||||
Instantiate a new TransformerFactory for this view.
| |||||||||||
Subclasses must implement this method to actually render the view.
| |||||||||||
Return whether to use a
java.io.Writer to write text content
to the HTTP response. |
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
org.springframework.web.servlet.view.AbstractView
| |||||||||||
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
|
The default content type if no stylesheet specified
This constructor sets the content type to "text/xml;charset=ISO-8859-1" by default. This will be switched to the standard web view default "text/html;charset=ISO-8859-1" if a stylesheet location has been specified.
A specific content type can be configured via the
"contentType"
bean property.
Reset the cached Templates object, if any.
The Templates object will subsequently be rebuilt on next
access
, if caching is enabled.
Set whether to activate the template cache for this view.
Default is true
. Turn this off to refresh
the Templates object on every access, e.g. during development.
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 an implementation of the ErrorListener
interface for custom handling of transformation errors and warnings.
If not set, a default
SimpleTransformErrorListener
is
used that simply logs warnings using the logger instance of the view class,
and rethrows errors to discontinue the XML transformation.
Set whether the XSLT transformer may add additional whitespace when outputting the result tree.
Default is true
(on); set this to false
(off)
to not specify an "indent" key, leaving the choice up to the stylesheet.
Set arbitrary transformer output properties to be applied to the stylesheet.
Any values specified here will override defaults that this view sets programmatically.
Set the location of the XSLT stylesheet.
If the TransformerFactory used by this instance has already
been initialized then invoking this setter will result in the
attendant templates
being re-cached.
stylesheetLocation | the location of the XSLT stylesheet |
---|
Specify the XSLT TransformerFactory class to use.
The default constructor of the specified class will be called to build the TransformerFactory for this view.
Set the URIResolver used in the transform.
The URIResolver handles calls to the XSLT document()
function.
Set whether to use the name of a given single model object as the document root element name.
Default is true
: If you pass in a model with a single object
named "myElement", then the document root will be named "myElement"
as well. Set this flag to false
if you want to pass in a single
model object while still using the root element name configured
through the "root" property
.
useSingleModelNameAsRoot | true if the name of a given single
model object is to be used as the document root element name |
---|
Apply the specified parameters to the given Transformer.
parameters | the transformer parameters
(as determined by getParameters(Map, HttpServletRequest) ) |
---|---|
transformer | the Transformer to aply the parameters |
Build a Transformer object for immediate use, based on the given parameters.
parameters | a Map of parameters to be applied to the stylesheet
(as determined by getParameters(Map, HttpServletRequest) ) |
---|
null
)TransformerConfigurationException | if the Transformer object could not be built |
---|
Return the XML Source
to transform.
model | the model Map |
---|---|
root | name for root element. This can be supplied as a bean property to concrete subclasses within the view definition file, but will be overridden in the case of a single object in the model map to be the key for that object. If no root property is specified and multiple model objects exist, a default root tag name will be supplied. |
request | HTTP request. Subclasses won't normally use this, as request processing should have been complete. However, we might want to create a RequestContext to expose as part of the model. |
response | HTTP response. Subclasses won't normally use this, however there may sometimes be a need to set cookies. |
Exception | if an error occurs |
---|
Perform the actual transformation, writing to the HTTP response.
The default implementation delegates to the
doTransform(javax.xml.transform.Source, java.util.Map, javax.xml.transform.Result, String)
method, building a StreamResult for the ServletResponse OutputStream
or for the ServletResponse Writer (according to useWriter()
).
model | the model Map |
---|---|
source | the Source to transform |
request | current HTTP request |
response | current HTTP response |
Exception | if an error occurs |
---|
Perform the actual transformation, writing to the given result.
source | the Source to transform |
---|---|
parameters | a Map of parameters to be applied to the stylesheet
(as determined by getParameters(Map, HttpServletRequest) ) |
result | the result to write to |
encoding | the preferred character encoding that the underlying Transformer should use |
Exception | if an error occurs |
---|
Return a Map of transformer parameters to be applied to the stylesheet.
Subclasses can override this method in order to apply one or more parameters to the transformation process.
The default implementation simply returns null
.
request | current HTTP request |
---|
Return a Map of transformer parameters to be applied to the stylesheet.
Subclasses can override this method in order to apply one or more parameters to the transformation process.
The default implementation delegates to the
getParameters(HttpServletRequest)
variant.
model | the model Map |
---|---|
request | current HTTP request |
Load the stylesheet from the specified location.
stylesheetLocation | the stylesheet resource to be loaded |
---|
ApplicationContextException | if the stylesheet resource could not be loaded |
---|
Obtain the Templates object to use, based on the configured stylesheet, either a cached one or a freshly built one.
Subclasses may override this method e.g. in order to refresh
the Templates instance, calling resetCachedTemplates()
before delegating to this getTemplates()
implementation.
null
if there is
no stylesheet specified)TransformerConfigurationException | if the Templates object could not be built |
---|
Return the TransformerFactory used by this view. Available once the View object has been fully initialized.
Here we load our template, as we need the
ApplicationContext
to do it.
ApplicationContextException |
---|
Instantiate a new TransformerFactory for this view.
The default implementation simply calls
newInstance()
.
If a "transformerFactoryClass"
has been specified explicitly, the default constructor of the
specified class will be called instead.
Can be overridden in subclasses.
transformerFactoryClass | the specified factory class (if any) |
---|
TransformerFactoryConfigurationError | in case of instantiation failure |
---|
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 |
---|
Return whether to use a java.io.Writer
to write text content
to the HTTP response. Else, a java.io.OutputStream
will be used,
to write binary content to the response.
The default implementation returns false
, indicating a
a java.io.OutputStream
.
true
) or an OutputStream
(false
)