2

文档说我可以将@repeat 用于表单中定义的列表。

http://www.playframework.com/documentation/2.1.0/JavaFormHelpers页面底部。

这可能是一个完全愚蠢的问题......我可以在地图上使用类似的东西吗?

现在我有一个助手类,它由字符串键和字符串值组成。它有效,但我在模板中有一些逻辑。在我看来,这不好...

编辑:更多信息

假设我有

class Article {
  ...
  Map<String, String> resources;
  ...getters, setters...
}

我调用视图来处理表单

return ok(form.render(Form.form(Article.class)));

在 form.scala.html 中

@for((key, value) <-formArt("resources")) { 
    @key, @value
}

给我错误:

value map is not a member of play.data.Form.Field 

这很有意义,因为它不再是 map,而是 formField。scala中有处理List的助手,但我不知道如何制作助手来处理Map。(如果我尝试任何类似的方法,例如使用 @repeat 助手,也会给我同样的错误)

对于那些询问 Field.value 中的内容的人

{value1=key1, value2=key2 ...}
4

1 回答 1

0

如果你只想迭代 Map 你可以用@defining()and来做到这一点@for()

public static Map<String, Object> myMap() {
    Map<String, Object> myMap = new HashMap<>();
    myMap.put("name", "John");
    myMap.put("secondName", "Doe");
    myMap.put("age", 23);
    return myMap;
}

看法:

@defining(Application.myMap()) { myMap =>

    Hello @myMap.get("name") @myMap.get("secondName")!
    <br><br>

    All entries of the map: <br>
    @for(entry <- myMap.entrySet()){
       Field <b>@entry.getKey()</b> has value: @entry.getValue() <br>
    }

}
于 2013-02-13T12:51:20.530 回答