如何使用 play framework 1.4.2 在模板中迭代地图
How to iterate map in a template using play framework 1.4.2
我有一张地图,其中键是一个对象,但值是一个列表对象。我正在使用 play framework 1.4.2(使用 groovy 模板)。
这是地图:
Map<Object, List<Object>> map = new HashMap<>();
如何遍历模板中的映射值?
您可以像在 java 中那样使用 entrySet() 遍历地图(参见 this SO answer),然后在 groovy 脚本中创建一个变量以获取值和键:
#{list items:map.entrySet(), as:'set' }
∗{print the key}*
${set.key}
*{iterate over value list }∗
#{list items: set.value, as:'itemValue'}
${itemValue}
#{/list}
#{/list}
有关 groovy 脚本的更多信息,请参阅:Play documentation
要遍历地图值,您需要通过调用 Map#values() 来获取值,如下所示:
#{list map.values()}
Value of your map is ${_}
#{/list}
要遍历地图值列表的值,您需要使用 list 标记两次,如下所示:
#{list map.values()}
#{list _}
Value of your list is ${_}
#{/list}
#{else}Your list is empty#{/else}
#{/list}
使用 list 标签的其他有用示例,您可以在播放文档的 cheatsheet 中找到,例如:
#{list items:0..10, as:'i'}
${i}
#{/list}
#{list items:'a'..'z', as:'l'}
${l} ${l_isLast ?'':'|' }
#{/list}
#{list users}
${_}
#{/list}
Loop constructs
#{list items:task, as:'task'}
${task}
#{/list}
#{else}No tasks on the list#{/else}
Tip: Else can be used along with list
我有一张地图,其中键是一个对象,但值是一个列表对象。我正在使用 play framework 1.4.2(使用 groovy 模板)。
这是地图:
Map<Object, List<Object>> map = new HashMap<>();
如何遍历模板中的映射值?
您可以像在 java 中那样使用 entrySet() 遍历地图(参见 this SO answer),然后在 groovy 脚本中创建一个变量以获取值和键:
#{list items:map.entrySet(), as:'set' }
∗{print the key}*
${set.key}
*{iterate over value list }∗
#{list items: set.value, as:'itemValue'}
${itemValue}
#{/list}
#{/list}
有关 groovy 脚本的更多信息,请参阅:Play documentation
要遍历地图值,您需要通过调用 Map#values() 来获取值,如下所示:
#{list map.values()}
Value of your map is ${_}
#{/list}
要遍历地图值列表的值,您需要使用 list 标记两次,如下所示:
#{list map.values()}
#{list _}
Value of your list is ${_}
#{/list}
#{else}Your list is empty#{/else}
#{/list}
使用 list 标签的其他有用示例,您可以在播放文档的 cheatsheet 中找到,例如:
#{list items:0..10, as:'i'}
${i}
#{/list}
#{list items:'a'..'z', as:'l'}
${l} ${l_isLast ?'':'|' }
#{/list}
#{list users}
${_}
#{/list}
Loop constructs
#{list items:task, as:'task'}
${task}
#{/list}
#{else}No tasks on the list#{/else}
Tip: Else can be used along with list