org.springframework.web.servlet.view.xslt
Class XsltViewResolver

java.lang.Object
  extended by org.springframework.context.support.ApplicationObjectSupport
      extended by org.springframework.web.context.support.WebApplicationObjectSupport
          extended by org.springframework.web.servlet.view.AbstractCachingViewResolver
              extended by org.springframework.web.servlet.view.UrlBasedViewResolver
                  extended by org.springframework.web.servlet.view.xslt.XsltViewResolver
All Implemented Interfaces:
ApplicationContextAware, Ordered, ServletContextAware, ViewResolver

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.

Since:
2.0
Author:
Rob Harrop, Juergen Hoeller

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
XsltViewResolver()
           
 
Method Summary
protected  AbstractUrlBasedView buildView(String viewName)
          Creates a new View instance of the specified view class and configures it.
protected  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(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(Properties outputProperties)
          Set arbitrary transformer output properties to be applied to the stylesheet.
 void setSourceKey(String sourceKey)
          Set the name of the model attribute that represents the XSLT Source.
 void setUriResolver(URIResolver uriResolver)
          Set the URIResolver used in the transform.
 
Methods inherited from class org.springframework.web.servlet.view.UrlBasedViewResolver
canHandle, createView, getAttributesMap, getCacheKey, getContentType, getOrder, getPrefix, getRequestContextAttribute, getSuffix, getViewClass, getViewNames, initApplicationContext, 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, removeFromCache, resolveViewName, setCache
 
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

XsltViewResolver

public XsltViewResolver()
Method Detail

setSourceKey

public void setSourceKey(String sourceKey)
Set the name of the model attribute that represents the XSLT Source. If not specified, the model map will be searched for a matching value type.

The following source types are supported out of the box: Source, Document, Node, Reader, InputStream and Resource.


setUriResolver

public void setUriResolver(URIResolver uriResolver)
Set the URIResolver used in the transform.

The URIResolver handles calls to the XSLT document() function.


setErrorListener

public void setErrorListener(ErrorListener errorListener)
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.

See Also:
SimpleTransformErrorListener

setIndent

public void setIndent(boolean indent)
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.

See Also:
OutputKeys.INDENT

setOutputProperties

public void setOutputProperties(Properties outputProperties)
Set arbitrary transformer output properties to be applied to the stylesheet.

Any values specified here will override defaults that this view sets programmatically.

See Also:
Transformer.setOutputProperty(java.lang.String, java.lang.String)

setCacheTemplates

public void setCacheTemplates(boolean cacheTemplates)
Turn on/off the caching of the XSLT templates.

The default value is "true". Only set this to "false" in development, where caching does not seriously impact performance.


requiredViewClass

protected Class requiredViewClass()
Description copied from class: UrlBasedViewResolver
Return the required type of view for this resolver. This implementation returns AbstractUrlBasedView.

Overrides:
requiredViewClass in class UrlBasedViewResolver
See Also:
AbstractUrlBasedView

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 UrlBasedViewResolver
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)