View Javadoc
1   /**
2    * Copyright By Grandsoft Company Limited.  
3    * 2014年5月22日 下午7:54:48
4    */
5   package gboat2.base.plugin.struts.freemarker;
6   
7   import java.net.URL;
8   
9   import org.apache.struts2.ServletActionContext;
10  
11  import com.opensymphony.xwork2.ActionInvocation;
12  import com.opensymphony.xwork2.util.ClassLoaderUtil;
13  
14  import freemarker.cache.URLTemplateLoader;
15  
16  /**
17   * 从 classpath 或 Bundle 的 jar 包中加载 FTL 模板的加载器
18   * @date 2014年5月22日
19   * @author <a href="mailto:[email protected]">何明旺</a>
20   * @since 3.0.0-SNAPSHOT
21   */
22  public class GboatClassTemplateLoader extends URLTemplateLoader {
23  
24      @Override
25      protected URL getURL(String name) {
26          ActionInvocation invocation = ServletActionContext.getContext().getActionInvocation();
27          Class<?> clazz = (invocation == null ? ServletActionContext.class : invocation.getAction().getClass());
28          URL url = ClassLoaderUtil.getResource(name, clazz);
29          return url;
30      }
31  
32  }