public class XsltViewResolver extends UrlBasedViewResolver
ViewResolver
implementation that
resolves instances of XsltView
by translating the supplied view name
into the URL of the XSLT stylesheet.Modifier and Type | Field and Description |
---|---|
private boolean |
cacheTemplates |
private javax.xml.transform.ErrorListener |
errorListener |
private boolean |
indent |
private java.util.Properties |
outputProperties |
private java.lang.String |
sourceKey |
private javax.xml.transform.URIResolver |
uriResolver |
FORWARD_URL_PREFIX, REDIRECT_URL_PREFIX
DEFAULT_CACHE_LIMIT
logger
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
Constructor and Description |
---|
XsltViewResolver() |
Modifier and Type | Method and Description |
---|---|
protected AbstractUrlBasedView |
buildView(java.lang.String viewName)
Creates a new View instance of the specified view class and configures it.
|
protected java.lang.Class<?> |
requiredViewClass()
Return the required type of view for this resolver.
|
void |
setCacheTemplates(boolean cacheTemplates)
Turn on/off the caching of the XSLT templates.
|
void |
setErrorListener(javax.xml.transform.ErrorListener errorListener)
Set an implementation of the
ErrorListener
interface for custom handling of transformation errors and warnings. |
void |
setIndent(boolean indent)
Set whether the XSLT transformer may add additional whitespace when
outputting the result tree.
|
void |
setOutputProperties(java.util.Properties outputProperties)
Set arbitrary transformer output properties to be applied to the stylesheet.
|
void |
setSourceKey(java.lang.String sourceKey)
Set the name of the model attribute that represents the XSLT Source.
|
void |
setUriResolver(javax.xml.transform.URIResolver uriResolver)
Set the URIResolver used in the transform.
|
canHandle, createView, getAttributesMap, getCacheKey, getContentType, getExposeContextBeansAsAttributes, getExposedContextBeanNames, getExposePathVariables, getOrder, getPrefix, getRedirectHosts, getRequestContextAttribute, getSuffix, getViewClass, getViewNames, initApplicationContext, isRedirectContextRelative, isRedirectHttp10Compatible, loadView, setAttributes, setAttributesMap, setContentType, setExposeContextBeansAsAttributes, setExposedContextBeanNames, setExposePathVariables, setOrder, setPrefix, setRedirectContextRelative, setRedirectHosts, setRedirectHttp10Compatible, setRequestContextAttribute, setSuffix, setViewClass, setViewNames
clearCache, getCacheLimit, isCache, isCacheUnresolved, removeFromCache, resolveViewName, setCache, setCacheLimit, setCacheUnresolved
getServletContext, getTempDir, getWebApplicationContext, initApplicationContext, initServletContext, isContextRequired, setServletContext
getApplicationContext, getMessageSourceAccessor, requiredContextClass, setApplicationContext
private java.lang.String sourceKey
private javax.xml.transform.URIResolver uriResolver
private javax.xml.transform.ErrorListener errorListener
private boolean indent
private java.util.Properties outputProperties
private boolean cacheTemplates
protected java.lang.Class<?> requiredViewClass()
UrlBasedViewResolver
requiredViewClass
in class UrlBasedViewResolver
AbstractUrlBasedView
public void setSourceKey(java.lang.String sourceKey)
The following source types are supported out of the box:
Source
, Document
,
Node
, Reader
, InputStream
and Resource
.
public void setUriResolver(javax.xml.transform.URIResolver uriResolver)
The URIResolver handles calls to the XSLT document()
function.
public void setErrorListener(javax.xml.transform.ErrorListener errorListener)
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.
SimpleTransformErrorListener
public void setIndent(boolean indent)
Default is true
(on); set this to false
(off)
to not specify an "indent" key, leaving the choice up to the stylesheet.
OutputKeys.INDENT
public void setOutputProperties(java.util.Properties outputProperties)
Any values specified here will override defaults that this view sets programmatically.
Transformer.setOutputProperty(java.lang.String, java.lang.String)
public void setCacheTemplates(boolean cacheTemplates)
The default value is "true". Only set this to "false" in development, where caching does not seriously impact performance.
protected AbstractUrlBasedView buildView(java.lang.String viewName) throws java.lang.Exception
UrlBasedViewResolver
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.
buildView
in class UrlBasedViewResolver
viewName
- the name of the view to buildjava.lang.Exception
- if the view couldn't be resolvedUrlBasedViewResolver.loadView(String, java.util.Locale)