第一种方法代码:
#foreach($map in $customerMap.keySet())
key: $!{map};
value:$!{customerMap.get($map)};
#end
还有一种:
#foreach($map in $customerMap.entrySet())
key: $!{map.key};
value:$!{map.value};
#end
一般如果Map中又包含了一个Map,这个时候的读取方法如下:
//Map的Key为Map类型的,如:
Map<Map<Long,String>,List<Entity>> cataMap=newLinkedHashMapMap<Map<Long,String>,List<Entity>>();
#foreach($cata in $cataMap)
//读取Map的key
#foreach($ca in $cata.key.keySet())
//获取key
key: $!{ca}
value:$!{cata.key.get($!{ca})}
#end
//读取Map的value
#foreach($cataval in $cata.value)
$cataval.id
$cataval.name
......
#end
#end
这是最近在页面上使用velocity的时候需要遍历Map所记录下来的,如果有啥问题,可以一起讨论。
相关推荐
总结一下,Velocity通过`#foreach`指令支持对`List`和`Map`等集合数据的遍历。对于`Map`,我们可以直接遍历`keySet()`,并通过`get()`方法获取对应的值。对于`List`,`#foreach`会逐个访问列表中的元素。这种方式极...
3. **#foreach**:循环遍历集合,如`#foreach($item in $list) ... #end`。 4. **#include**:包含其他模板文件。 5. **#parse**:解析并执行指定的模板文件。 6. **#macro**:定义宏,可复用的代码块。 7. **#stop*...
2. **循环**:Velocity 提供了 `#foreach` 循环结构,如 `#foreach( $mud in $mudsOnSpecial )`,这里 `$mud` 是循环中的临时变量,`$mudsOnSpecial` 是需要遍历的集合。 3. **对象方法调用**:你可以直接在模板中...
3. **`#foreach`**:循环遍历集合,如数组或列表。 ```velocity #foreach( $info in $hotList1) $!info.cid" target="_blank">$!info.title</a><br> #end ``` 4. **`#macro`**:定义宏,简化代码重复。尽管不推荐...
最后,"Maps.java"可能是一个包含Map使用的示例代码,博主可能在这个文件中展示了常见的Map操作,比如添加元素、删除元素、遍历Map、查找键值对等,也可能涉及到并发编程中对ConcurrentHashMap的使用,或者是线程...
这个标签用于遍历集合,其`value`属性指定要迭代的集合,`id`和`status`属性则提供了访问和判断迭代状态的能力。 3. `if`标签: `if`标签根据一个Boolean表达式的值决定是否执行其内部的代码块。 4. `append`...
- `<s:iterator>`:遍历集合,如List或Map,用于循环输出。 6. **辅助与控制标签**: - `<s:debug>`:用于调试,显示当前请求的详细信息。 - `<s:div>`:创建一个HTML的`<div>`块。 - `<s:push>`:将值推入栈中...
5. 遍历:`<#list>`指令可以用来遍历List或其他集合类型的变量,例如`<#list users as user>`,在循环中可以访问每个用户的属性。 除了以上基础用法,Freemarker还支持更多的高级特性,如宏定义、指令嵌套、模板...
- 创建`ftl`文件,例如`excel.ftl`,设置表格行、列的布局,用`<#foreach>`循环遍历数据集合,将数据插入到模板中。 - 在Java代码中,使用`Freemarker`实例加载模板,创建`Configuration`对象,设置模板目录,然后...
5. **迭代标签**:`<s:iterator>`是用于遍历集合的标签,它可以遍历任何实现了Iterable接口的对象,如数组、列表或Map。配合`<s:append>`,可以在不同的数据源之间进行灵活的数据整合。 6. **生成标签**:`...
3. `#foreach`:循环遍历集合。 4. `#set`:设置变量。 5. `#include`:包含其他模板。 6. `#import`:导入其他模板或Java类。 7. `#function`:自定义函数。 8. `#macro`:宏定义,类似于函数,可以复用模板片段。 ...
- **循环**:`<#foreach>`遍历集合,如数组、列表。 - **指令**:如`<#assign>`分配变量,`<#include>`引入其他模板。 3. **Freemarker标签** - **内置函数**:如`?html`用于转义HTML实体,`?string`将对象转换...
5. **Iterative Tags**: `<s:iterator>`标签用于遍历集合,如List、Map等,是循环渲染数据的关键。 6. **Input Tags**: 包括`<s:textfield>`、`<s:password>`、`<s:textarea>`等,用于创建表单输入元素,并能自动...
例如,`${list}" var="item">`会遍历名为`list`的集合,并为每个元素创建一个新的行。 其次,**数据封装**是将业务数据与模板关联的关键步骤。开发者需要创建一个Java对象或Map,其中包含了模板需要的所有数据。...
- **循环结构**:`<#list>`用于遍历集合,`<#foreach>`用于常规迭代。 - **指令**:如`<#assign>`分配变量,`<#include>`包含其他模板,`<#function>`定义函数。 - **注释**:`<!--...-->`为HTML注释,`...
这两种遍历集合的方式各有优势。`foreach` 更简洁易用,而 `iterator` 则提供了更多的控制选项,例如删除元素等。 **4. 浅拷贝与深拷贝** 浅拷贝只复制对象本身,并不复制对象所引用的对象;深拷贝不仅复制对象...
例如,`<#if condition>` 和 `<#else>` 用于条件判断,`<#list items as item>` 用于遍历列表。变量引用通常用 `${expression}` 表示,其中`expression`可以是任何返回值的表达式。 2. **数据模型** 在Freemarker...
- **迭代器**:遍历集合的工具。 #### 8. 状态模式与客户端连接 - **状态模式**:允许对象在其内部状态改变时改变它的行为。 - **客户端连接管理**:建立、维护和关闭与服务器的连接。 #### 9. 并发控制机制 - **...
- **关键特性**:提供丰富的函数集合,如`_.map`、`_.reduce`等,用于数组遍历;`_.throttle`、`_.debounce`等,用于函数节流和防抖。 2. **xijs**: - **简介**:面向复杂业务场景的 JavaScript 工具库。 - **...