2013-02-13 35 views
2

該文檔說我可以在表單中定義的列表中使用@repeat。在模板中處理重複的值

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

這可能是完全愚蠢的問題...我可以使用類似的地圖嗎?

現在我有一個助手類,它包含String key和String value。它的工作原理,但我有一些模板的邏輯。在我看來,這不是很好......

編輯:更多信息

假設我有

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

我打電話視圖處理形式

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

形式.scala.html

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

給我的錯誤:

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

這使得完整的培訓就業處,因爲它不再被映射,但formField。在Scala中有助手來處理List,但我不知道如何幫助處理Map。 (如果我嘗試類似的話,例如使用@Repeat幫手,給了我同樣的錯誤)

爲那些誰是問什麼是Field.value

{value1=key1, value2=key2 ...} 
+0

我們在談論什麼樣的地圖? – fynn 2013-02-13 11:57:04

+0

你想迭代Map嗎?給出一些線索:) – biesior 2013-02-13 12:27:26

回答

0

如果你只想迭代地圖你可以做到這一點與@defining()@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> 
    } 

} 
+0

幾乎這是你如何處理在斯卡拉地圖。我知道這一點,但我想問如何處理地圖的形式 - 更多信息在我的origianl文章。 – kino 2013-02-13 13:14:07