1 24 package org.riotfamily.common.web.view.freemarker; 25 26 import java.io.IOException ; 27 import java.io.InputStreamReader ; 28 import java.io.Reader ; 29 30 import org.springframework.context.ResourceLoaderAware; 31 import org.springframework.core.io.Resource; 32 import org.springframework.core.io.ResourceLoader; 33 34 import freemarker.cache.TemplateLoader; 35 36 public class ResourceTemplateLoader implements TemplateLoader, 37 ResourceLoaderAware { 38 39 private ResourceLoader resourceLoader; 40 41 public ResourceTemplateLoader() { 42 } 43 44 public ResourceTemplateLoader(ResourceLoader resourceLoader) { 45 this.resourceLoader = resourceLoader; 46 } 47 48 public void setResourceLoader(ResourceLoader resourceLoader) { 49 this.resourceLoader = resourceLoader; 50 } 51 52 public Object findTemplateSource(String name) throws IOException { 53 Resource resource = resourceLoader.getResource(name); 54 return (resource.exists() ? resource : null); 55 } 56 57 public long getLastModified(Object templateSource) { 58 return -1; 59 } 60 61 public Reader getReader(Object templateSource, String encoding) throws IOException { 62 Resource resource = (Resource) templateSource; 63 return new InputStreamReader (resource.getInputStream(), encoding); 64 } 65 66 public void closeTemplateSource(Object templateSource) throws IOException { 67 } 68 69 } 70 | Popular Tags |