在上一篇呢,我将导出word文档的想法与思路以及实现功能的代码分享了一下,在这里, 我想说的是我对导出freemarker模板路径的三种方法的理解和认知。 有错误的话希望大家帮忙指正
在接下来我会使用 ftl文件 代替 模板文件
1. public void setClassForTemplateLoading(Class clazz, String pathPrefix);
根据类路径加载ftl文件。 路径加载模式为:当前类所在路径 + ftl文件所在文件夹
参数一:指定当前类。 可以填写成 this.getClass() 也可以填写为 类名.class 。 在这里需要注意的是,this.getClass() 一般用于非静态类中使用,而 类名.class 常用于静态类中使用
参数二:ftl文件所在路径。
使用这个方法的前提是 当前类 是 ftl文件 所在目录 的 父目录 。
示例:
PS:
有人说可以使用System.getProperty("user.dir") 路径直接指到项目目录下,然后再写剩下的路径,不过楼主试了试,没成功 有成功的可以告诉楼主我哦
2. public void setServletContextForTemplateLoading(Object servletContext, String path);
根据 servlet 加载ftl文件。 路径加载模式:获取的上下文路径 + ftl文件所在文件夹(这个我也不是很确定,如果有人做出来了希望可以告诉我的,我的理解是否正确)
参数一:应用上下文。
参数二:相对于 classpath 的 ftl文件 所在路径。
示例:
3. public void setDirectoryForTemplateLoading(File dir) throws IOException;
这个应该就不用多说了吧。 参数:new File( ftl文件所在目录 )
示例: