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. List を扱うためのヘルパーは scala にありますが、Map を扱うためのヘルパーを作成する方法がわかりません。(@repeatヘルパーを使用するなど、同様のことを試してみると、同じエラーが発生します)

Field.value の内容を尋ねている人向け

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

1 に答える 1

0

@defining()Map を反復処理するだけの場合は、 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 に答える