freemarker的for list:
<#list items as item> ${item.attr} </#list>
freemarker的for map:
<#list yourmap?keys as key> ${key}=${yourmap[key]}<br /> </#list>
PS:map的key必须为String类型,如果为复杂的类型那么需要单独基于业务进行封装,否则不能正常遍历,场景举例如下:
学生:
public class Student{ private String xh; private String name; /**setter getter**/ }
课程:
public class Course{ private String id; private String cname; private String ename; /**setter getter**/ }
我们需要遍历展示学生的选课信息,那么基于基本类型做map封装即可如Map<Student,List<Course>即可,不过在基于freemarker做展示遍历的时候不能正常访问,jstl的foreach可以,那么我们需要基于业务做封装,构造封装类:
public class StudentCourse{ private String studentName; private List<Course> courses }
然后map的组织形式为Map<String,StudentCourse>(如果你确实打算非要用map的话,这种方式也不失为一种方式)
相关推荐
在FreeMarker中,遍历`List<Map<String>>`是常见的操作,尤其在处理从后端传来的复杂数据结构时。这篇博客链接虽然无法直接访问,但从标题来看,我们可以推测其内容可能涉及如何在FreeMarker模板中遍历一个包含Map...
5. **遍历map**:如果list中的元素是map,可以用`key`和`value`遍历键值对。 ```freemarker <#list users[0].properties as entry> 属性名: ${entry.key}, 值: ${entry.value} </#list> ``` 6. **反向遍历**...
listA-List<特性1Model>--表格1 map.listA <#list map.listA as model></#list> column Model属性——字段名 ${model.column} columnName Model属性——字段中文名 ${model.column} rate Model属性——字段占比 ...
java导出word使用freemarker模板map数据导出word带图片 可以循环map 中list。 调用的2种方法在博客 https://blog.csdn.net/yjflinchong/article/details/122614203
在Java应用中,Freemarker通过ModelAndView或者Map对象将数据传递到视图层。开发者可以在Java后端准备数据模型,然后传递给Freemarker模板,模板根据模型中的数据生成HTML输出。 4. **与Struts2集成** Struts2是...
Freemarker 提供了多种循环遍历方式,包括遍历普通 List、遍历 Map 和遍历 List 的前面几项。遍历普通 List 的语法如下: ```html <#list someList as item> ... </#list> ``` 遍历 Map 的语法如下: ```html <#...
2. **数据模型(Data Model)**:数据模型是Freemarker用来渲染模板的数据源,它可以是Java对象、Map、List等任何形式。在Java中,通常通过`ModelAndView`或`Map`将数据传递给Freemarker。 3. **Freemarker指令...
如果List的元素是Map,可以这样遍历: ```freemarker <#list users as userMap> , value in userMap> ${key}:${value} </#list> ``` ### 5. 获取当前选代的索引 在遍历过程中,可以使用`<#list>`的`index`属性...
- **Map对象**:Freemarker支持Java Map对象作为数据模型,键值对可以通过模板语法访问。 - ** Beans**:可以直接使用Java Bean对象,属性可以通过`.`操作符访问。 - **List和集合**:列表和集合可以通过`<#list>...
Map, Object> model = new HashMap(); model.put("data", dataList); // 创建Excel工作簿 Workbook workbook = new HSSFWorkbook(); Sheet sheet = workbook.createSheet("Sheet1"); // 渲染模板并转换为Excel ...
1. **数据模型(Model)**:这是你要生成XML所依赖的数据,可以是Java对象、Map或者其他集合类型。例如,你可以创建一个包含多个元素的列表,每个元素都有属性如`name`、`age`等。 ```java List<Person> persons = ...
在这个“FreeMarker入门之一:say hello world”中,我们将探讨如何使用FreeMarker来创建一个简单的“Hello, World!”程序,了解其基本语法和工作原理。 1. **FreeMarker简介** FreeMarker是一个开源项目,由...
Java模板引擎之FreeMarker FreeMarker是一个开源的Java模板引擎,它被广泛应用于Web开发中,用于生成动态HTML、XML或其他格式的文本。这个强大的工具允许开发者将逻辑代码与表现层分离,使得网页设计人员可以专注于...
开发者可以将任何Java对象传递给FreeMarker,包括基本类型、集合、Map等。 3. 指令和变量:FreeMarker支持多种指令,如`<#if>`(条件判断)、`<#foreach>`(循环)和`<#assign>`(赋值)。变量则用于显示数据模型中...
2. 数据模型:在使用Freemarker生成任何输出之前,需要准备一个数据模型,这个模型通常是Java对象或Map,包含了要在模板中使用的数据。 3. 模板解析:Freemarker引擎会解析模板文件,并结合数据模型生成最终的输出...
它可以是Java对象、Map、List等。模板中的变量引用这些数据模型中的属性,如`${variable}`,FreeMarker会自动将Java对象转换为可打印的字符串。 **3. 控制结构** FreeMarker提供了类似于编程语言的控制结构,包括...
数据模型可以是Java对象、集合、Map等,它们通过模板变量在模板中引用。 3. **模板语言**:FreeMarker的模板语言由一系列控制结构(如条件语句、循环)、表达式(用于访问数据模型中的属性)和函数组成。例如,`...
这里的`#list`是Freemarker的迭代指令,遍历`dropdownList`中的每一项,并将`key`和`value`分别插入到`<option>`的`value`和文本内容中。 为了实现通用性,我们需要一个方法或服务在后端生成这个`dropdownList`,...
- 数据模型:Freemarker与后台代码交互,获取数据并封装成Map对象,这些对象在模板中通过键值对访问。 - 模板:使用FTL(Freemarker Template Language)编写,包含静态文本和变量/指令。 4. **模板指令** - `#...