テンプレートでリストをフォームにマッピング
Play Framework のテンプレートでリストをフォームにマッピングさせます。
http://www.playframework-ja.org/documentation/2.0.4/ScalaTodoList
このチュートリアルの改造版です。
いろいろ省いたのでちゃんと動くかわかりません。
ごめんなさい。
テンプレート
@(taskForm: Form[Task]) @import helper._ @detailGroup(field: Field) = { @inputText(field("number")) @inputText(field("detail")) } @form(routes.Application.newTask()) { @inputText(taskForm("label")) @repeat(taskForm("details"), min = 2) { detail => @detailGroup(detail) } <input type="submit" value="Create"> }
3行目の@detailGroupでリストの中身の表示部分を定義して、
@repeat で繰り返します。
min で最小の繰り返し回数を指定します。
min = 2 の場合リストが空でも 2つ分は作成されます。
モデル Taskクラス
package models; import java.util.*; public class Task { public String label; public List<Detail> details; public static class Detail { public String number; public String detail; } }
配列の場合はどうやるかわかりません。