freemarker设置模板路径问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了freemarker设置模板路径问题相关的知识,希望对你有一定的参考价值。

我在freemarkerUtil类里面设置,想要定位到panel.html
Configuration cfg = new Configuration(); cfg.setClassForTemplateLoading(this.getClass(), "/ftl"); cfg.setDefaultEncoding("UTF-8"); Template temp; temp = cfg.getTemplate(name);
以前看到的例子是这样的,不过他是把ftl文件放到src/ftl文件夹下的,我现在是直接放在webroot下面,路径要怎么写

要么配置死,找到部署环境的对应文件看属性路径。

要么传个Request,request.getContextPath()可以拿到相对路径拼一个路径,

然后可以类似这样的写法。

参考技术A 在使用路径时默认情况只能到/src/下面,因为路径是看生成classes文件后的目录为准
如果是在类里调用有两种情况
1、调用类跟被调用文件放在一个目录,可以只用绝对路径
Class.class.getClass().getResource("/").getPath()
2、使用项目目录
System.getProperty("user.dir") 路径直接指到项目目录下
楼主可以根据自己情况选择
参考技术B 这个可以直接定位到webroot目录下 我是建了一个resources包用来放ftl模板
configuration.setServletContextForTemplateLoading(request.getSession().getServletContext(), "/resources");

以上是关于freemarker设置模板路径问题的主要内容,如果未能解决你的问题,请参考以下文章

Freemarker 模板从路径 WEB-INF\ftl\ 访问 Freemarker 文件

在 FreeMarker 中使用绝对路径

Freemarker 模板引擎和 Maven

Freemarker 目录路径在 UAT 中不可读

freemarker include必须在同一个目录下吗

freemarker宏定义引用路径解决方案