.ftl文件 是啥文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.ftl文件 是啥文件相关的知识,希望对你有一定的参考价值。

  freemarker的文件一般以后缀ftl,ftl文件的头上要写
<#assign ww=JspTaglibs["/WEB-INF/webwork.tld"] /
这样才能在ftl中使用webwork的tag。
  freemarker确实是不错的模版语言引擎,尤其是处理对象图很方便,处理xml也很方便,还支持xpath
  FreeMarker 是一个模版引擎,一个基于文本的模板输出工具(生成任意的html表单代码)。它是一个Java package,面向Java程序员的class library。它本身并不是针对最终用户的应用,而是允许程序员将其嵌入到他们的产品中。
  FreeMarker被设计用来生成HTML Web页面,特别是基于MVC(Model View Controller)模式的应用程序。使用 MVC 模式作为动态的WEB页面的想法,是为了分隔页面设计者 (HTML 设计者) 和程序员。.每个人做自己擅长的那一部分。设计者可以不通过程序员的改变或修改代码来改变网页的样子,因为应用逻辑(Java程序)和页面设计(FreeMarker 模版)是分开的。模板不会被复杂繁琐的程序框架所破坏。即使当一个项目的程序员和HIMTL页面的制作者是同一个人时,这种分隔也是很有用,因为这样有助于保持应用的清晰并易于维护。
  尽管FreeMarker有一些编程的能力,但它并不是一个象php那样的成熟的编程语言。与Java不同的是,Java程序准备用来显示的数据(如SQL queries),而Freemarker仅是生成文本页,这个文本页显示用于模板的预备数据。
  FreeMarker 不是一个 Web 应用框架,而更适合充当 Web 应用框架里的一个组件的角色,但 FreeMarker 引擎本身对 HTTP 或 servlets 并不关心,它仅仅是生成文本。在非 Web 应用环境中它同样能够展示完美的用途。然而值得注意的是:我们为使用 FreeMarker 提供了方便的解决方案,作为 Model2 框架(如 Struts )的视图组件,你也可以在模版中使用 JSP 标签。
  FreeMarker 是免费的,有 BSD-style license 。它是由 OSI 认证的开源软件。
参考技术A

    ftl是Freemarker模板的文件后缀名

    FreeMarker其实是一种比较简单的网页展示技术,说白了就是网页模板和数据模型的结合体。这种结合模式的好处就是,分离了网页界面设计人员和编程人员的工作,让他们各司其职。

    FreeMarker大致的工作方式是,网页模板里面嵌入了数据模型中的数据、FreeMarker自定义流程控制语言、FreeMarker自定义的操作函数等等,在装载网页的时候,FreeMarker模板自动从数据模型中提取数据,并解释整个网页为HTML页面。而且,FreeMarker并不是只能生成HTML页面,它也可以生成各种文本,如XML/RTF/Java源代码等。

放置freemarker模板文件的最佳做法是啥

【中文标题】放置freemarker模板文件的最佳做法是啥【英文标题】:What's the best practice to put freemarker template files放置freemarker模板文件的最佳做法是什么 【发布时间】:2019-01-12 11:01:04 【问题描述】:

请参考this thread我目前的做法。 它运行了一段时间,我认为所有问题都已解决。但是,当我在不同的文件夹中构建 jar 时,抛出了“找不到模板 index.ftl”。我使用jar xf xxx.jar提取目标jar,发现templates文件夹下的*.ftl已经被压缩到那个jar中了。

我尝试solution here 将以下配置添加到 pom.xml,但没有成功。

<plugin>
  <!-- Build an executable JAR -->
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-jar-plugin</artifactId>
  <version>3.1.0</version>
  <configuration>
    <archive>
      <manifest>
        <addClasspath>true</addClasspath>
        <classpathPrefix>libs/</classpathPrefix>
        <mainClass>com.gearon.app.App</mainClass>
      </manifest>
    </archive>
    <includes>
        <include>**/*.class</include>
        <include>**/*.jdo</include>
        <include>**/*.properties</include>
        <include>**/*.xml</include>
        <include>**/*.ftl</include>
    </includes>
  </configuration>
</plugin>

OP还说:

更好的是,我完全删除了配置标签,它仍然是 在职的。我想这是在我发现 .properties 文件和我在类路径上需要的其他东西需要 位于 src/main/resources 而不是 src/main/java

我想尝试将模板/xxx.ftl 放入 src/main/resources 但不放入 src/main/java/com/gearon/app/templates/*.ftl。

但是加载模板的方式应该改变吧?目前,它是 cfg.setClassForTemplateLoading(Config.class, "/templates");

那么问题来了,怎么改呢?或者如果我上面的理解完全错误,将模板放入 jar 并确保该 jar 中的类可以找到这些模板的最佳做法是什么?

【问题讨论】:

最好不要在帖子标题中使用“最佳实践”一词。 不清楚你想做什么。但是如果只是将模板放在src/main/resources/templates/ 中,这是一种非常常见的做法,并且也不需要任何 Maven 的默认配置。但是,Config.class 是否与模板在同一个 jar 中? @ddekany 是的,Config.class 与模板处于同一级别。我尝试将 templates/***.ftl 放在 src/main/resources 下,它又可以工作了。感谢您的评论。 @Gearon 发生了什么变化?顺便说一句,仅需要 &lt;include&gt;**/*.ftl&lt;/include&gt;,因为您已指定 includes。否则,所有内容都包含在 resources 中。 我之前没有把模板放到src/main/resources但是把它放到src/main/java,我认为是jar文件没有添加模板的原因。跨度> 【参考方案1】:

这里是 Maven 提交者...

你所做的是完全错误的,你违反了惯例。它表示所有必须在运行时类路径中可用的资源必须驻留在src/main/resouces 中。无需进一步配置。我强烈建议这样做。在您的情况下:src/main/resources/templates,您就完成了。 JAR 插件中不需要&lt;includes /&gt;

【讨论】:

以上是关于.ftl文件 是啥文件的主要内容,如果未能解决你的问题,请参考以下文章

ftl是啥格式

如何在被引用的ftl文件中,获取model传给引用文件的数据?

设置:ftl模板文件编辑器

什么是 FTL 文件

ftl格式文件的注释方法?

无法在 ftl 文件中映射 jsonRequest 属性