FreeMarker:
记录一点数据输出结构
(root)
|
+- string
|
+- list{string,map}
|
+- map
// Build the data-model List<Object> list = new ArrayList<Object>(); list.add("red"); list.add("green"); list.add("blue"); SimpleHash mapColor = new SimpleHash(); mapColor.put("c1", "red"); mapColor.put("c2", "green"); mapColor.put("c3", "blue"); list.add(mapColor); // 将会使用default wrapper SimpleHash root = new SimpleHash(); root.put("theList", list);
FTL 文件. 怎么遍历list中的map
***************************************************************<br>
+- theList<br>
<#list theList as item>
| |<br>
****************第4个值放的map***********************************************<br>
<#if item_index =3>
<#assign keys = item?keys>
<#list keys as key>
||<br>
+- ${key} = ${item[key]}<br>
</#list>
<#else>
+- ${item_index + 1}. ${item}<br>
</#if>
</#list>
***************************************************************<br>
output:
+- theList | | +- 1. red | | +- 2. green | | +- 3. blue | | || +- c1 = red || +- c2 = green || +- c3 = blue
参考,
http://www.iteye.com/topic/165112
附件: ―Programmer's Guide
相关推荐
在FreeMarker中,遍历`List<Map<String>>`是常见的操作,尤其在处理从后端传来的复杂数据结构时。这篇博客链接虽然无法直接访问,但从标题来看,我们可以推测其内容可能涉及如何在FreeMarker模板中遍历一个包含Map...
- `<#list>` 类似于 `<#foreach>`,用于遍历集合或数组。 ##### 5.2 表达式 - **表达式**: - **直接指定值**: 如 `1`, `"Hello"`, `true`。 - **获取变量**: `${varName}`。 - **字符串操作**: 如 `${varName?...
-- 使用Freemarker遍历JSON数组 --> <ul> <#list data.array as item> <li>${item.property}</li> </#list> </ul> <!-- 示例HTML截取 --> <div>${truncateHtml(originalHtml, 100)}</div> </body> </html> ``...
Map<String, Object> model = new HashMap<>(); model.put("title", "FreeMarker示例"); model.put("name", name); return new ModelAndView("hello", model); } } ``` 这里的`@RequestMapping("/hello")`指定...
Map<String, Object> model = new HashMap<>(); model.put("title", "用户列表"); model.put("users", getUsers()); // 假设getUsers()返回User对象的List Configuration cfg = new Configuration(Configuration....
Map<String, Object> model = new HashMap<>(); model.put("title", "报告标题"); List<List<String>> data = new ArrayList<>(); // 填充数据... model.put("data", data); model.put("imagePath", "path/to/...
Map<String, String> expected = new HashMap<>(); expected.put("CN", "China"); expected.put("US", "United States"); // 模拟服务 when(dropdownService.getDropdownList(entityType)).thenReturn...
// 假设我们有一个Map<String, String> excelData存储了从Excel读取的数据 Map<String, String> excelData = ...; for (Map.Entry<String, String> entry : excelData.entrySet()) { String key = entry.getKey(); ...
9. **条件判断和循环**:`<#if>`、`<#else>`、`<#elseif>`用于条件判断,`<#foreach>`遍历集合,`<#list>`则提供更灵活的列表处理。 10. **逻辑运算和比较**:Freemarker支持基本的逻辑运算符(`&&`、`||`、`!`)和...
Map<String, Object> model = new HashMap<>(); model.put("newsItems", newsItems); StringWriter writer = new StringWriter(); template.process(model, writer); return writer.toString(); } } ``` ...
Freemarker 提供了多种循环遍历方式,包括遍历普通 List、遍历 Map 和遍历 List 的前面几项。遍历普通 List 的语法如下: ```html <#list someList as item> ... </#list> ``` 遍历 Map 的语法如下: ```html <#...
- **循环**:`<#list 集合 as 变量>` 用于遍历集合。 #### 三、高级特性 ##### 1. 数据类型 - **字符串**:可以直接使用引号括起来,如 `"光明顶"` 或 `'光明顶'`。 - **转义字符**:支持多种转义字符,例如 `\n`...
在这个模板中,`<#list>`指令用于遍历用户列表,`${}`则用于插入变量的值。 6. **集成测试**: 为了确保功能的正确性,我们需要进行集成测试,包括对API接口的单元测试以及前后端交互的端到端测试。我们可以使用...
List<Person> persons = new ArrayList<>(); persons.add(new Person("张三", 25)); persons.add(new Person("李四", 30)); ``` 2. **Freemarker模板(Template)**:这是一个`.ftl`文件,里面定义了XML的结构和...
遍历数组或集合可以通过`<#list>`指令完成,同时,可以获取当前遍历的索引,如`<#list items as item> ${item}, ${item_index}</#list>`。 对于Map集合,FreeMarker提供了便利的遍历方式,例如: ```html <#list ...
Map<String, Object> dataModel = new HashMap<>(); dataModel.put("user", new User("John Doe")); FreemarkerConfig freemarkerConfig = new FreemarkerConfig(); freemarkerConfig.setTemplateLoaderPath(...
Freemarker还提供了许多其他标签,如`<#switch>`用于多分支选择、`<#assign>`用于赋值等,开发者可以根据实际需求选择合适的标签使用。 通过以上介绍,我们可以看到Freemarker不仅能够简化前端页面的生成过程,还...
<#list map as m>${m.key}</#list> ``` #### 4. Freemarker Web 应用注意事项 在 Web 应用中使用 Freemarker 需要注意以下几点: - **Web 上下文路径**:确保正确设置上下文路径,以便正确加载模板文件。 - **...
2. 循环语句:`<#foreach item in list>`遍历一个集合,`item`是当前项,`list`是可迭代对象。还可用`<#break>`跳出循环,`<#continue>`跳过本次循环。 三、函数与方法调用 Freemarker提供了许多内置函数,如`...