如果某段文本中包含大量的特殊符号,freemarker提供了另一种特殊格式:可以在指定字符串内容的引号前添加r标记,在r标记后的文 件将会直接输出 如 ${r"${foo}"}。
使用标签时前面的#符号也可能变成@,如果该指令是一个用户指令而不是系统内建指令时,应将#换为@符号。
插值,本人理解为${a}中 a就是插值
插值结果如果为字符串值:直接输出表达式结果
插值结果为数字值:根据默认格式将表达式结果转换为文本输出。可以使用内建的字符串函数格式化单个插值
如:<#assign lastUpdated="2009-01-07 15:05"?datetime("yyyy-MM-dd HH:mm")>
${lastUpdated?string("yyyy-MM-dd HH:mm:ss zzzzz")}结果为2009-01-07 15:05:00 中国标准时间
集合
集合以方括号包括,各集合元素之间以英文逗号(,)分割,实例:
<#list ["星期一","星期二"] as x>
${X}
</#list>
顶层变量
所谓顶层变量就是直接放在数据模型中的值,对于顶层变量,直接使用${variableName}来输出变量值
输出Map元素
如:Book b=new Book();
Author author=new Author();
author.setName('ss');
b.setAuthor(author);
Map root =newHashMap();
root.put("info",b);
输出:info.author.name
或为 info["author"]["name"],或 两者的混合
字符串操作
freemarker的表达式对字符串操作十分灵活,可以将字符串常量和变量连接起来,也可以返回字符串的子串等。
如:Map root=new HashMap();
root.put("user","yeeku");
${"hello,${user}!"}或者${"hello,"+user+"!"}
${}只能用于文本部分
原文:http://hi.baidu.com/%B5%DA%D2%BB%B8%F6%C9%CF%BB%F0%D0%C7/blog/item/c802e3187455a762dab4bddf.html
分享到:
相关推荐
html}` 将字符串中的特殊字符如`, `>`, `&`等转换为HTML实体。 #### 3. `index_of(substring,start)` 查找子串在字符串中的位置。 示例:`${string?index_of(in)}` 返回子串`in`在字符串中的起始位置。 #### 4. `...
html`用于转义HTML特殊字符,`?replace`进行字符串替换,`?upper_case`和`?lower_case`进行大小写转换。此外,还有算术操作符(+、-、*、/、%)、比较操作符(==、!=、<、>、、>=)和逻辑操作符(&&、||、!)。 6. ...
- 通过Unicode编码输出特殊字符:`${'也通过4位16进制unicode码来输出:\"\\x000d\"'}`。 这种方式适用于需要在模板中直接嵌入固定文本的情况。 #### 七、集合的操作 Freemarker支持对集合进行迭代和其他操作。 ...
FreeMarker的核心概念是模板文件,这是一种特殊的文本文件,其中包含可替换的占位符(称为变量或指令)。当模板与数据模型合并时,这些占位符会被相应的数据值替换,生成最终的输出。FreeMarker支持多种内置指令和...
- **字符串**: 由单引号或双引号括起来的文本。 - **数字**: 直接使用数值。 - **日期**: 通常从数据模型中获取。 - **布尔值**: `true` 或 `false`,常用于 `<#if...>` 结构中。 **2. Hashes(哈希表)** - ...
- **模板(Template)**:Freemarker模板是HTML或其他文本文件,其中包含特殊语法的占位符,这些占位符会被模板引擎用实际数据替换。 - **数据模型(Data Model)**:这是提供给Freemarker用于渲染模板的对象集合...
3. **Freemarker指令(Directives)**:这些是控制流程或结构的特殊标记,如`<#if>`、`<#foreach>`、`<#assign>`等。它们允许你在模板中进行条件判断、循环和变量赋值。 4. **内置函数(Built-in Functions)**:...
html`用于转义HTML特殊字符,`?upper_case`将字符串转化为大写,`<#list>`用于遍历集合等,这些功能极大地丰富了模板的表达能力。 6. **自定义指令与宏**: 开发者可以创建自定义指令来扩展Freemarker的功能,例如...
- `#autoesc`:自动转义HTML特殊字符,防止XSS攻击。 - `#function`:定义函数,类似于宏,但支持参数。 5. **表达式和逻辑运算** - 字符串连接:使用`~`符号连接字符串。 - 数学运算:支持加减乘除、取余、...
- **数据模型一览**:详细介绍了FreeMarker支持的各种数据类型,包括基本类型(如字符串、数字)、复杂类型(如列表、哈希表)、以及特殊类型(如日期、时间)。 - **模板一览**:提供了关于模板语法的详细介绍,...
模板是指定输出格式的文本文件,它包含静态文本以及特殊的标记,这些标记是FreeMarker用来插入动态生成的内容的地方。数据模型则是一个包含数据的结构,它可以是简单的键值对映射,也可以是更复杂的对象。输出是模板...
模板是由开发者设计的,包含了一些特殊的语法元素,这些元素会被Freemarker引擎替换为实际的数据值。 生成PDF的过程通常分为以下几个步骤: 1. **创建模板**:在Freemarker中,我们需要创建一个`.ftl`(Freemarker...
文本是模板中最直接输出的部分,这部分内容不包含任何特殊符号或语法结构,例如: ``` Welcome ${user}! ``` 这里的“Welcome ”和“!”都是文本,而`${user}`则是一个插值表达式。 ##### 2. 注释 FreeMarker支持与...
为了转义特殊字符,FreeMarker支持多种转义符号,例如 `/";` 表示双引号、`/';` 表示单引号等。 例如: ``` ${'/"annlee/"'} ``` 输出结果为 `\"annlee\"`。 2. **复杂表达式**:可以使用算术运算符、...
Freemarker的核心概念是模板(Template),它是一种特殊的文本文件,包含静态文本和动态表达式。动态表达式在运行时会被解析和替换为实际值,而静态文本则保持不变。这使得开发者可以通过简单的模板语言编写HTML或...
FreeMarker的灵活性体现在它支持多种数据类型和内置函数,比如日期时间处理、字符串操作、条件语句、循环结构等。它还可以自定义标签库(Tag Libraries)来扩展其功能,与现有的Java库无缝集成。 在实际应用中,...
- **FreeMarker**是一个用Java编写的模板引擎,其核心功能是基于模板来生成文本输出。这里的“模板”是指包含静态文本和控制逻辑的一种特殊类型的文件。 - **FreeMarker**的主要应用场景包括但不限于:动态网页生成...