如何使用 play framework 1.4.2 在模板中迭代地图
Posted
技术标签:
【中文标题】如何使用 play framework 1.4.2 在模板中迭代地图【英文标题】:How to iterate map in a template using play framework 1.4.2 【发布时间】:2017-03-29 18:38:51 【问题描述】:我有一张地图,其中键是对象,但值是列表对象。我正在使用 play framework 1.4.2(使用 groovy 模板)。
这是地图:
Map<Object, List<Object>> map = new HashMap<>();
如何遍历模板中的地图值?
【问题讨论】:
【参考方案1】:您可以像在 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
【讨论】:
【参考方案2】:要遍历地图值,您需要通过调用Map#values() 来获取值,如下所示:
#list map.values()
Value of your map is $_
#/list
要遍历地图值列表的值,您需要使用 list 标签两次,如下所示:
#list map.values()
#list _
Value of your list is $_
#/list
#elseYour 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
#elseNo tasks on the list#/else
Tip: Else can be used along with list
【讨论】:
以上是关于如何使用 play framework 1.4.2 在模板中迭代地图的主要内容,如果未能解决你的问题,请参考以下文章
如何构建版本独立的 Play!Framework 2 模块?
如何在 Play Framework 2.0 中使用相对路径访问资源文件?