Class 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[] paths
      The root paths for templates (relative to webapp's root).
      protected ServletContext servletContext  
      protected HashMap templatePaths  
      • Fields inherited from class org.apache.velocity.runtime.resource.loader.ResourceLoader

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

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      long getLastModified​(org.apache.velocity.runtime.resource.Resource resource)
      Checks to see when a resource was last modified
      Reader 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
    • Field Detail

      • paths

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

        protected HashMap templatePaths
    • Constructor Detail

      • WebappResourceLoader

        public WebappResourceLoader()
    • Method Detail

      • 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