Class XsltViewResolver

All Implemented Interfaces:
Aware, 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
  • Constructor Details

    • XsltViewResolver

      public XsltViewResolver()
      This resolver requires XsltView.
  • Method Details

    • 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:
    • 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:
    • 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:
    • 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:
    • instantiateView

      protected AbstractUrlBasedView instantiateView()
      Description copied from class: UrlBasedViewResolver
      Instantiate the specified view class.

      The default implementation uses reflection to instantiate the class.

      Overrides:
      instantiateView in class UrlBasedViewResolver
      Returns:
      a new instance of the view class
      See Also:
    • 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: