我们上一节认识了FreeMarker基本数据类型
,接口认识FreeMarker集合(List、Map)
序列(List)
定义序列
<#-- 定义序列 -->
<#assign mynums=[11,12,13,14,15,16,17,18,19]/>
<#list mynums as mn>
${mn}
</#list>
拆分序列
<#-- 拆分序列 -->
<#-- 这里是将mynums序列中下标从3到6之间的元素拆分出来,组成一个新的序列 -->
<#assign mynum01=mynums[3..6]/>
<#list mynum01 as mn01>
${mn01}
</#list>
字符串的拆分
${"你好,你来了吗今天看书了吗!"[0..8]}...
你好,你来了吗今天...
连续序列
<#-- 连续序列 -->
<#-- 从55到58:注意此时若写成[55..58]或者[66..68]则会报错 -->
<#assign num01=55..58/>
<#list num01 as num>
${num}
</#list>
<#list 66..68 as num>
${num}
</#list>
哈希表(Map)
定义哈希表
<#assign maps={"1":"
张三
","2":"
李四
"}>
${maps["1"]}
|
张三
|
<#--
以下代码可以将
map
的
key
转换为相应的序列
-->
<#assign keys=maps?keys>
<#list keys as key>
${key}---${maps[key]}
</#list>
|
1---
张三
2---
李四
|
<#assign users={"username
":"
张三
","password":"123"}>
${users.username}---${users["password"]}
|
张三
---123
|
注意:
FreeMarker中的哈希表要求其key必须是字符串,包括数据模型中的java.util.HashMap的key也要是字符串,否则报错
不能直接用list遍历map,需要先将map的key转换为相应的序列
本文链接:
FreeMarker集合(List、Map)
,本文由huangyineng原创,转载请注明出处
下一节:FreeMarker自定义指令
分享到:
相关推荐
在Java中,`List<Map<String>>`表示一个列表,其中每个元素都是一个键值对的集合(Map)。Map通常用于存储关联数据,键(key)和值(value)之间通过键进行关联。在FreeMarker模板语言(FTL)中,遍历这样的结构可以...
本实例将详细介绍如何在Freemarker中遍历list集合,帮助你理解和应用这一核心功能。 在Freemarker中,遍历list集合主要依赖于`<#list>`指令。当你有一个Java对象,例如一个ArrayList或LinkedList,这些对象在...
list(Table)表的集合 <#list table as map></#list> table1(map) table-名字 ${map.table} tableName-中文名 ${map.tableName} columnCount-字段数 ${map.columnCount} recordCount-记录数 ${map.recordCount}...
Freemarker有许多内置的指令,如`include`用于包含其他模板,`import`用于导入宏库,`list`用于遍历集合等。同时,还可以自定义函数和宏来扩展功能。 10. **模板调试** Freemarker提供了一个调试模式,可以帮助...
- **Map对象**:Freemarker支持Java Map对象作为数据模型,键值对可以通过模板语法访问。 - ** Beans**:可以直接使用Java Bean对象,属性可以通过`.`操作符访问。 - **List和集合**:列表和集合可以通过`<#list>...
2. **数据模型(Data Model)**:数据模型是Freemarker用来渲染模板的数据源,它可以是Java对象、Map、List等任何形式。在Java中,通常通过`ModelAndView`或`Map`将数据传递给Freemarker。 3. **Freemarker指令...
开发者可以将任何Java对象传递给FreeMarker,包括基本类型、集合、Map等。 3. 指令和变量:FreeMarker支持多种指令,如`<#if>`(条件判断)、`<#foreach>`(循环)和`<#assign>`(赋值)。变量则用于显示数据模型中...
对于List类型的集合,可以使用`<#list>`指令来遍历。例如: ```freemarker <#list users as user> 用户名:${user.name} </#list> ``` 这将遍历`users`列表,并对每个元素的`name`属性进行输出。 ### 3. 遍历 Map ...
1. **数据模型(Model)**:这是你要生成XML所依赖的数据,可以是Java对象、Map或者其他集合类型。例如,你可以创建一个包含多个元素的列表,每个元素都有属性如`name`、`age`等。 ```java List<Person> persons = ...
- **列表和迭代**:`<#list>`指令用于遍历集合、数组或Map,输出其内容。 - **条件语句**:`<#if>`、`<#elseif>`、`<#else>`用于条件判断。 - **异常处理**:`<#try>`、`<#catch>`、`<#finally>`用于捕获和处理模板...
数据模型可以是Java对象、集合、Map等,它们通过模板变量在模板中引用。 3. **模板语言**:FreeMarker的模板语言由一系列控制结构(如条件语句、循环)、表达式(用于访问数据模型中的属性)和函数组成。例如,`...
FreeMarker是一个强大的模板引擎,它使用模板和数据模型来生成动态内容。由于其与Web容器无关的特性,FreeMarker可以广泛应用于生成HTML、XML、JSP等各类文本输出。然而,在使用FreeMarker时,我们经常需要判断对象...
7. **条件与循环**:`<#if>`、`<#elseif>`、`<#else>`进行条件判断,`<#foreach>`、`<#list>`用于循环遍历集合。 8. **内置函数和方法**:Freemarker内置了如`default`、`escape`、`size`等函数,以及对象的`?`操作...
它可以是Java对象、集合、Map等。模板通过表达式访问这些数据,如`${user.name}`获取用户对象的name属性。 3. **指令(Directives)**:Freemarker提供了一系列指令,如`<#include>`用于包含其他模板,`<#macro>`...
- **数据模型(Data Model)**:提供给模板的数据,通常由Java对象构成,包括单个对象、集合、Map等。 - **模板引擎(Engine)**:负责解析模板和数据模型,生成最终的输出。 **2. Freemarker配置** 在Java项目中,通常...
数据模型是应用程序提供的数据,可以是任何Java对象,包括基本类型、集合、Map等。当Freemarker渲染模板时,它会根据数据模型替换模板中的变量,生成最终的输出文本。 在2.2.8版本中,Freemarker引入了多项改进和...
- 数据模型:Freemarker与后台代码交互,获取数据并封装成Map对象,这些对象在模板中通过键值对访问。 - 模板:使用FTL(Freemarker Template Language)编写,包含静态文本和变量/指令。 4. **模板指令** - `#...
它可以是Java对象、Map、List等。模板中的变量引用这些数据模型中的属性,如`${variable}`,FreeMarker会自动将Java对象转换为可打印的字符串。 **3. 控制结构** FreeMarker提供了类似于编程语言的控制结构,包括...
开发者可以将Java对象、集合、Map等数据结构暴露给模板,供其使用。 9. **配置与自定义**: FreeMarker允许通过`Configuration`类进行细致的配置,如模板加载策略、模板缓存机制、日期时间格式等。此外,还可以...