FreeMarker模板文件主要由如下4个部分构成:
1. 文本:直接输出的部分
2. 注释:即<#-- …… -->格式部分,不会输出
3. 插值:即${……}或者#{……}格式的部分,将使用数据模型中的部分替代输出
4. FTL指令:FreeMarker指令,和HTML标记类似,名字前加#予以区分,不会输出
<html>
<body>
<#-- 注释部分 -->
<#-- 下面引用插值 -->
<h1>Welcome! ${user}!</h1>
<#-- 使用FTL指令 -->
<#list animals as begin>
<li>${begin.name} for ${begin.price} Euros<br>
</#list>
</body>
</html>
FTL指令规则
FreeMarker中,使用FTL标签来使用指令,FreeMarker有3种FTL标签,这和HTML标签完全类似。
开始标签:<#directivename parameters>
结束标签:</#directivename>
空标签:<#directivename parameters/>
实际上,使用标签时,前面的#符号也可能变为@,如果该指令是一个用户指令而不是系统内建指令时,应将#符号改为@符号。
注意:如果使用不存在的指令,FreeMarker不会使用模板输出,而是产生一个错误信息。
注意:<、</和指令之间不允许有空白字符。
FreeMarker插值规则
FreeMarker的插值有两种类型:
1. 通用插值:${expr}
2. 数字格式化插值:#{expr}或#{expr;format}
<#setting number_format="currency" />
<#assign answer=42 />
${answer} --输出为-- $42.00
${answer?string} --输出为-- $42.00
${answer?string.number} --输出为-- 42
${answer?string.currency} --输出为-- $42.00
${answer?string.percent} --输出为-- 4,200%
<#assign foo=true/>
${foo?string("yes", "no")}
输出结果为:
yes
${lastUpdated?string("yyyy-mm-dd HH:mm:ss zzzz")}
${lastUpdated?string("EEE,MMM d, ''yy")}
${lastUpdated?string("EEEE,MMMM dd, yyyy, hh:mm:ss a '('zzzz')'")}
输出结果为:
2003-04-08 21:24:44 Pacific Daylight Time
Tue, Apr 8, '03'
Tuesday, April 08, 2003, 09:24:44 PM (PDT)
可采用#{expr; format}形式来格式化数字,其中format可以是:
mX:小数部分最小X位
MX:小数部分最大X位
分享到:
相关推荐
这个“freeMarker模板文件附件.zip”压缩包包含了一些关键资源,便于学习者深入理解并实践FreeMarker模板语言的用法。 1. **FreeMarker模板语言基础** FreeMarker是基于模板的,它与Java代码分离,使得视图层的...
FreeMarker模板文件的组成及基本语法详解 FreeMarker模板文件由四部分组成:文本、注释、插值和FTL指令。文本是直接输出的部分,注释是以#--开头的格式部分,不会输出。插值是以${...}或#{...}格式的部分,将使用...
3. **编写 FreeMarker 模板**:设计一个 .ftl(FreeMarker Template Language)文件,其中包含 Word 文档的结构和占位符。占位符将以 `${}` 包围,用于在运行时被数据模型中的值替换。 4. **加载模板**:使用 ...
8. **src**:这个目录通常包含了Java源代码和FreeMarker模板文件。源代码中会有一个Java类负责处理数据模型,加载模板,以及生成Word文档。而模板文件(.ftl)则位于`src/main/resources`目录下,其中定义了Word文档...
1. Freemarker模板文件(.ftl),展示了PDF的结构和样式。 2. Java代码示例,演示如何加载数据模型并使用Freemarker和Flying Saucer生成PDF。 3. EasyPOI的使用示例,包括如何添加图片、设置水印和实现分页的Excel...
1. **配置模板**:开发者定义一系列的Freemarker模板文件,每个模板对应一种或多种代码结构,如实体类、DAO接口、Service类等。 2. **设置数据模型**:根据需求,生成器会要求用户输入必要的参数,如数据库表名、...
在实际项目中,"JavaCodeGenerater"这个压缩包很可能包含了一系列的Freemarker模板文件,如dto.ftl、dao.ftl、rowmapper.ftl等,以及一个生成代码的主程序。主程序会读取数据库表结构,使用Freemarker解析模板,生成...
附件包含了mybatis-plus自动生成代码,基于freemarker的模板。包括常规的curd。 【特点】针对每个接口都有对应的入参和出参,不公用entity。 如,add接口,则入参会自动生成为addEntityReq。具体可下载模板进行查看...
项目源码包含63个文件,涵盖35个Java源文件、10个JAR包文件、8个Freemarker模板文件、2个Gradle构建文件、2个XML配置文件、1个Git忽略文件、1个LICENSE文件、1个Markdown文件、1个文本文件、1个DTD文件等。...
2. **Freemarker模板设计**: 设计Freemarker模板文件,定义HTML结构和动态内容的占位符。例如,`欢迎,${user.name}!</#if>` 这样的语句会根据用户是否登录来决定是否显示欢迎信息和用户名。 3. **生成HTML**: 在...
1. 创建Freemarker模板文件,定义表格和图片的占位符。 2. 在Java代码中,设置Freemarker的配置,加载模板。 3. 构建数据模型,包括图片URL或Base64字符串列表,以及表格数据(二维列表)。 4. 使用`Template`对象的...
接下来,在项目的类路径下创建`/WEB-INF/templates`目录,将FreeMarker模板文件放置于此目录下。 #### 使用FreeMarker模板 在Struts2的Action中,可以通过设置模型属性来向模板传递数据。例如: ```java public ...
Freemarker模板中的`<#list>`指令用于遍历数据集合,`<#if>`、`<#else>`则用于条件判断,而`<@include>`可以包含其他公用部分的模板。 2. **EditPage.ftl**:编辑页面模板,用于展示和修改已有数据。通常会包含表单...
解压后,你可以看到`src/main/resources/templates`目录下的Freemarker模板文件,`pom.xml`文件中的依赖配置,以及可能存在的`FreeMarkerUtil.java`文件。 总的来说,“freemarker导出doc及docx”涉及到了...
`PDFTool`可能包含使用Freemarker的方法,如`processTemplate()`,此方法接受模板文件路径、数据模型和目标PDF输出路径作为参数。`FileController`则可能是处理HTTP请求的控制器,它接收一个HTML URL,并调用`PDF...
本项目是一款基于Java语言的Android平台Freemarker集成设计方案源码,包含1181个文件,其中包括747个Java源文件、178个Freemarker模板文件、110个文本文件、22个HTML文件、21个XML配置文件、16个输出文件、14个JSP...
FreeMarker 模板文件由四个部分组成:文本、注释、插值和 FTL 指令。 一、文本 文本是 Freemarker 模板文件的直接输出部分。它可以是静态的 HTML 代码,也可以是动态生成的内容。 二、注释 注释是在 Freemarker ...
- 一个或多个Freemarker模板文件(.ftl),定义了Word文档的布局和占位符。 - 示例数据模型类或JSON文件,用于填充模板。 - Java源代码,展示了如何使用Freemarker和JFreechart进行操作。 - 图表生成的临时图像文件...
而Struts2是一个框架,它提供了对Freemarker的很好支持,使得开发人员可以利用熟悉Struts2的标签来开发Freemarker模板文件。下面详细阐述Struts2与Freemarker的配置方法。 首先,要安装开发Freemarker模板文件的...
- 配置视图解析器:定义`FreemarkerViewResolver` Bean,指定视图名与Freemarker模板文件的映射规则。 2. **Freemarker模板**: - 模板语法:Freemarker使用简单的指令(如`<#if>`、`<#foreach>`)来控制逻辑,`$...