.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 发生了什么变化?顺便说一句,仅需要 <include>**/*.ftl</include>
,因为您已指定 includes
。否则,所有内容都包含在 resources
中。
我之前没有把模板放到src/main/resources但是把它放到src/main/java,我认为是jar文件没有添加模板的原因。跨度>
【参考方案1】:
这里是 Maven 提交者...
你所做的是完全错误的,你违反了惯例。它表示所有必须在运行时类路径中可用的资源必须驻留在src/main/resouces
中。无需进一步配置。我强烈建议这样做。在您的情况下:src/main/resources/templates
,您就完成了。 JAR 插件中不需要<includes />
。
【讨论】:
以上是关于.ftl文件 是啥文件的主要内容,如果未能解决你的问题,请参考以下文章