Class WebappResourceLoader

java.lang.Object
org.apache.velocity.runtime.resource.loader.ResourceLoader
org.apache.velocity.tools.view.WebappResourceLoader

public class WebappResourceLoader extends org.apache.velocity.runtime.resource.loader.ResourceLoader
Resource loader that uses the ServletContext of a webapp to load Velocity templates. (it's much easier to use with servlets than the standard FileResourceLoader, in particular the use of war files is transparent). The default search path is '/' (relative to the webapp root), but you can change this behaviour by specifying one or more paths by mean of as many webapp.resource.loader.path properties as needed in the velocity.properties file. All paths must be relative to the root of the webapp. To enable caching and cache refreshing the webapp.resource.loader.cache and webapp.resource.loader.modificationCheckInterval properties need to be set in the velocity.properties file ... auto-reloading of global macros requires the webapp.resource.loader.cache property to be set to 'false'.
Version:
$Id$
Author:
Geir Magnusson Jr., Nathan Bubna, Claude Brisson
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected String[]
    The root paths for templates (relative to webapp's root).
    protected ServletContext
     
    protected HashMap
     

    Fields inherited from class org.apache.velocity.runtime.resource.loader.ResourceLoader

    className, isCachingOn, log, modificationCheckInterval, rsvc
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    long
    getLastModified(org.apache.velocity.runtime.resource.Resource resource)
    Checks to see when a resource was last modified
    getResourceReader(String name, String encoding)
    Get Reader so that the Runtime can build a template with it.
    void
    init(org.apache.velocity.util.ExtProperties configuration)
    This is abstract in the base class, so we need it.
    boolean
    isSourceModified(org.apache.velocity.runtime.resource.Resource resource)
    Checks to see if a resource has been deleted, moved or modified.

    Methods inherited from class org.apache.velocity.runtime.resource.loader.ResourceLoader

    buildReader, commonInit, getClassName, getModificationCheckInterval, isCachingOn, resourceExists, setCachingOn, setModificationCheckInterval

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • paths

      protected String[] paths
      The root paths for templates (relative to webapp's root).
    • templatePaths

      protected HashMap templatePaths
    • servletContext

      protected ServletContext servletContext
  • Constructor Details

    • WebappResourceLoader

      public WebappResourceLoader()
  • Method Details

    • init

      public void init(org.apache.velocity.util.ExtProperties configuration)
      This is abstract in the base class, so we need it.
      NOTE: this expects that the ServletContext has already been placed in the runtime's application attributes under its full class name (i.e. "javax.servlet.ServletContext").
      Specified by:
      init in class org.apache.velocity.runtime.resource.loader.ResourceLoader
      Parameters:
      configuration - the ExtProperties associated with this resource loader.
    • getResourceReader

      public Reader getResourceReader(String name, String encoding) throws org.apache.velocity.exception.ResourceNotFoundException
      Get Reader so that the Runtime can build a template with it.
      Specified by:
      getResourceReader in class org.apache.velocity.runtime.resource.loader.ResourceLoader
      Parameters:
      name - name of template to get
      encoding - asked encoding
      Returns:
      InputStream containing the template
      Throws:
      org.apache.velocity.exception.ResourceNotFoundException - if template not found in classpath.
      Since:
      2.0
    • isSourceModified

      public boolean isSourceModified(org.apache.velocity.runtime.resource.Resource resource)
      Checks to see if a resource has been deleted, moved or modified.
      Specified by:
      isSourceModified in class org.apache.velocity.runtime.resource.loader.ResourceLoader
      Parameters:
      resource - Resource The resource to check for modification
      Returns:
      boolean True if the resource has been modified
    • getLastModified

      public long getLastModified(org.apache.velocity.runtime.resource.Resource resource)
      Checks to see when a resource was last modified
      Specified by:
      getLastModified in class org.apache.velocity.runtime.resource.loader.ResourceLoader
      Parameters:
      resource - Resource the resource to check
      Returns:
      long The time when the resource was last modified or 0 if the file can't be read