相关文章推荐
悲伤的墨镜  ·  文化产业管理系·  9 月前    · 
焦虑的领结  ·  波妞_百度百科·  1 年前    · 
追风的单杠  ·  IBM SPSS Statistics·  1 年前    · 

Freemarker 加载模板方法(SpringBoot环境)

最近项目上用到freeMarker 的模板,遇到有关配置freeMarker的模板路径时,配置过如下情况:**
根据官网上freeMarker的Api配置
但是自己不管怎么修改,还是报freemarker.template.TemplateNotFoundException: 
Template not found for name “*.ftl”
1、首先检查下打的包target下是否有你需要的模板文件
没有则需要设置pom文件
 <build>
     <resources>
         <resource>
             <directory>src/main/resources</directory>
             <excludes>
                 <exclude>*.yml</exclude>
                 <exclude>*.properties</exclude>
             </excludes>
             <filtering>false</filtering>
         </resource>
         <resource>
             <directory>src/main/resources</directory>
             <includes>
                 <include>**/*.ftl</include>
             </includes>
         </resource>
     </resources>
 </build>

2、JavaBean配置如下(代替xml配置):

@Configuration
public class ApplicationConfig  {
  @Bean(name = "freeMarkerConfigurer")
  public FreeMarkerConfigurer freeMarkerConfigurer() {
    FreeMarkerConfigurer configurer = new FreeMarkerConfigurer();
    configurer.setDefaultEncoding("UTF-8");
    configurer.setTemplateLoaderPath("classpath:/ftl");
    Map<String, Object> variables = new HashMap<>(1<<1);
    variables.put("xml_escape","fmXmlEscape");
    configurer.setFreemarkerVariables(variables);
    return configurer;

3、获取模板发送邮件实现类:

@Service
public class sendMailImpl{
  @Autowired
  private FreeMarkerConfigurer freeMarkerConfigurer;
  public void sendMail(){
  	  // 创建configuration对象,得到模板文件保存的目录
      Configuration configuration = freeMarkerConfigurer.getConfiguration();
      // 加载一个模板文件,创建一个模板对象
      Locale locale = new Locale("zh");
      Template template = configuration.getTemplate("文件名.ftl",locale,"UTF-8");
      //TODO dosome

4、需要注意的是必須要把freeMarker 的模板放在配置文件下的resources的文件下,问题解决

在Spring Boot项目里整合Freemarker,目标是使用Freemarker模板文件生成代码。 模板在在resources/template里边明明有对应的xxx.xml.ftl文件,但是却报错说没有找到该文件。 freemarker.template.TemplateNotFoundException: Template not found for name "xxx.ftl". ....... 产生问题原因 此时便要注意Maven生成的项目了。在target文件夹,即编译成功的文件 freemarker.template.TemplateNotFoundException: Template not found for name "taskArriveNotification.ftl". The name was interpreted by this TemplateLoader: Configuration$LegacyDefaultFileTemplateLoader(... 根据报错信息提示是xxx.ftl模板不存在,但是在项目目录中确实存在该xxx.ftl文件 检查发现:这是因为ftl文件放置在java目录下,在idea中编译的时候没有将ftl文件编译导classes目录中,导致在运行的时候找不到所需要的文件 解决办法:可以手动将该文件放置在classes对应的目录下即可。 将p1整合到p0平台时候,freemarker读取jar包中模板文件失败,报错信息:freemarker.template.TemplateNotFoundException: Template not found for name " 在p0测试服务器可复测,但在p1中未出现此问题;怀疑是安装问题导致,由于p1跟p0分别安装在服务器不同路径下, 可能跟文件路径权限有关,所以将p0安装路径改为跟p1一致,重装后测试,发现问题仍然存在,故排除安装路径问题;因为涉及模块为brick1模 I. 简介 FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。 模板编写为FreeMarker Template Language (FTL)。 在模板中,你可以专注于如何展现数据, 而在模板之外可以专注于... 有没有一种方法可以为Django项目中的每个应用程序创建多个自定义错误模板,我的意思是,在我的项目中,我有3个应用程序,每个应用程序将显示3种不同的custom 404错误. 现在,我在后台应用程序和前台显示相同的404错误页面. 创建一个自定义error view并将其分配给根urls.py中的handler404变量: from django.views.defaults import page_not_found def my_error_404(request, exception): template_name = '404.html' if request.path JEECMS是JavaEE版网站管理系统(Java Enterprise Edition Content Manage System)的简称。 基于java技术开发,继承其强大、稳定、安全、高效、跨平台等多方面的优点 采用hibernate3+struts2+spring2+freemarker主流技术架构 懂html就能建站,提供最便利、合理的使用方式 强大、灵活的标签,用户自定义显示内容和显示方式 在设计上自身预先做了搜索引擎优化,增强对搜索引擎的友好性 采用伪静态页面技术,可自定义路径结构,无需urlrewrite 轻松建设大规模网站,可通过次级域名建立子站群,各子站后台管理权限分离,全站实现单点登录