1.String
特殊字符表示:
特殊字符表示
意义
\" |
" (u0022) |
\' |
' (u0027) |
\\ |
\ (u005C) |
\n |
换行 (u000A) |
\r |
回车 (u000D) |
\t |
水平制表 (u0009) |
\b |
退格 (u0008) |
\f |
换页 (u000C) |
\l |
< |
\g |
>
|
\a |
&
|
\xCode |
十六进制Unicode码 (UCS码),\x后为1到四位的十六进制数 |
可以在String中插入表达式(${}或者#{})
例1:
|
${"Hello ${user}!"}
${"${user}${user}${user}${user}"}
|
|
或者使用+号:
|
${"Hello " + user + "!"}
${user + user + user + user}
|
|
|
|
|
|
输出:
Hello Big Joe!
Big JoeBig JoeBig JoeBig Joe
|
|
|
|
为了表明此为原String,没有什么特别意义,则可以在插入标签中加入r
例2:
${r"${foo}"}
${r"C:\foo\bar"}
|
|
|
|
输出:
检索字符:
例3:user值为"Big Joe''
输出:
2.Numbers
注意不能省略小数分隔符前的0(如.5应写成0.5)。FreeMarker中=在逻辑判断语句中等价于==。
运算时Numbers可以自动转化成String,而String不能转化为Numbers。
例如下:
输出:
35
如果希望只得到结果整数部分,可以如下写:
${(x/2)?int}
${1.1?int}
${1.999?int}
${-1.1?int}
${-1.999?int}
|
|
|
|
输出:
3.Booleans
4.Sequences (序列)
例4:
|
|
|
|
<#list ["winter", "spring", "summer", "autumn"] as x>
${x}
</#list>
|
|
|
|
输出:
|
winter
spring
summer
autumn
|
|
|
|
用+连接序列(尽管串联序列很快[取决于被串联序列的长度],但是结果序列的读取将比直接读取两个序列要慢一些):
例5:
<#list ["Joe", "Fred"] + ["Julia", "Kate"] as user>
- ${user}
</#list>
|
|
|
|
输出:
- Joe
- Fred
- Julia
- Kate
|
|
|
|
序列检索:
形式为Seq[firstindex..lastindex],如果检索到末尾,则lastindex可以省略
(!注意:在FreeMarker 2.3.3之后lastindex才可以省略)
例6:
如果seq存储了 "a", "b", "c", "d", "e", "f",则:
表达式 seq[1..4]将输出:
"b",
"c", "d", "e"
表达式seq[3..]将输出:
"d", "e",
"f"
5.Hashes(哈希)
一组由key和value组成的列表,如:{"name":"green mouse", "price":150}
(!注意:FreeMarker中[]可以替代<>)
和String一样,哈希也可以使用+串联两个哈希,如果出现重名,+右边的哈希有优先权
例7:
<#assign ages = {"Joe":23, "Fred":25} + {"Joe":30, "Julia":18}>
- Joe is ${ages.Joe}
- Fred is ${ages.Fred}
- Julia is ${ages.Julia}
|
|
|
|
输出:
- Joe is 30
- Fred is 25
- Julia is 18
|
|
|
|
相关推荐
FreeMarker 是一种强大的模板语言,主要用于生成动态内容,如HTML页面。...FreeMarker的核心概念是将静态的...对于初学者来说,理解FreeMarker的基础知识,如变量类型、模板结构和插值机制,是掌握这一技术的关键步骤。
2. 数据模型:Freemarker与后端代码交互的主要方式是数据模型,这是将Java对象暴露给模板的桥梁。数据模型可以是任何实现了`Map`接口的对象,或者使用`TemplateModel`接口的自定义对象。 3. 模板解析:Freemarker...
2. 数据模型:在使用Freemarker生成任何输出之前,需要准备一个数据模型,这个模型通常是Java对象或Map,包含了要在模板中使用的数据。 3. 模板解析:Freemarker引擎会解析模板文件,并结合数据模型生成最终的输出...
Struts2是一个基于MVC(Model-View-Controller)架构模式的开源框架,用于构建动态、数据驱动的Web应用程序,而FreeMarker则是一个模板引擎,它允许开发者将业务逻辑与视图层分离,使得前端展示更加灵活和高效。...
2. **数据模型(Data Model)**:数据模型是Freemarker用来渲染模板的数据源,它可以是Java对象、Map、List等任何形式。在Java中,通常通过`ModelAndView`或`Map`将数据传递给Freemarker。 3. **Freemarker指令...
1. **基础概念**:Freemarker的工作原理,模板语言的基础元素,如变量、表达式、控制结构(if/else、foreach)以及注释等。 2. **数据模型**:理解如何将Java对象绑定到模板,包括基本类型、集合、Map等数据结构的...
二、Freemarker语法基础 1. 变量表示: `${variable}` 用于输出变量的值,`variable`是Java对象的属性或方法名。 2. 注释:`<#-- comment -->` 用于在模板中添加注释,不会出现在生成的输出中。 3. 输出处理:`...
2. **数据模型绑定**: Freemarker的核心概念之一是数据模型,开发者将Java对象暴露给模板,模板通过这些对象来生成输出。比如,一个Web应用可以将请求上下文中的ModelAndView对象传递给Freemarker,然后在模板中引用...
2. **数据模型和变量** FreeMarker的核心概念是数据模型,它是由Java对象构成的结构,这些对象可以被模板引用。在模板中,你可以通过`.`操作符访问对象的属性,如`${user.name}`来获取用户对象的name属性。 3. **...
在这个例子中,我们看到的是如何在使用Struts2框架的基础上,集成Freemarker进行分页处理。以下是对这个主题的详细讲解: 首先,**Freemarker** 是一个模板引擎,它允许开发者通过定义模板来生成HTML或其他文本格式...
FreeMarker 提供了一些基础的语法结构,如变量赋值、条件语句、循环等。下面是一些常见的符号和命令的解释: - **变量赋值**:使用 `<#assign name=value>` 来赋值。 - **条件语句**:可以使用 `<#if expression>` ...
10. **Struts2与FreeMarker的集成**:如何在Action中设置模型数据,然后在FreeMarker模板中获取并显示这些数据。 11. **测试Struts2应用**:了解如何使用JUnit进行单元测试,以及Struts2提供的Mock对象进行集成测试...
### FreeMarker 语法基础 #### 一、FreeMarker 模板结构 FreeMarker 是一种用于生成文本输出的模板引擎,其模板文件结构简单且易于理解。一个典型的 FreeMarker 模板文件由以下四个主要部分组成: 1. **文本**:...
1. **Freemarker基础概念** - **模板语言**:Freemarker使用一种简单的、声明式的模板语言,允许开发者编写模板,与后台数据模型结合,生成动态内容。 - **数据模型**:Freemarker模板与应用程序的数据模型进行...
具体而言,开发者创建模板,这些模板包含固定文本、变量插值、逻辑控制结构等元素,通过将数据模型中的数据注入到模板中,Freemarker能够生成动态的文本输出。 ### 3. 模板开发 #### 模板组成 - **Text文本**:...
通过这个项目,你可以逐步掌握FreeMarker的基础知识,以及它与Struts2的集成方式,进一步提升在Web开发中的视图层能力。测试文件`testFreeMarker`和`testFreemarker2`可能包含了练习模板和Action的实例,用于实践...
通过将Struts2的模型数据传递给FreeMarker模板,前端开发人员可以使用FreeMarker提供的丰富的模板标签和函数来渲染页面。 #### 配置Struts2与FreeMarker 在Struts2中使用FreeMarker之前,首先需要进行相应的配置。...
1. **Freemarker基础知识**:Freemarker是一个基于模板的语言,它允许开发者通过定义模板文件,然后结合Java对象数据,生成动态内容。模板文件中包含了一系列控制结构(如条件语句、循环)和变量引用,这些变量可以...
例如,Freemarker支持控制结构(如if、foreach)、变量表达式、函数调用等,这些都是构建动态页面的基础。同时,手册还会详细介绍如何配置和优化Freemarker以适应你的项目需求。 其次,`freemarker 插件 安装提示....