【Scala】【PlayFramework】複数のチェックボックスを配置する
コレクションから複数のチェックボックスを生成する
普通にチェックボックスを配置して、そのON/OFFをサーバサイドで拾う
これは単純。
view内にチェックボックスを置いてname属性を付与し、nameに付与した文字列でFormにbooleanにマッピングしてあげたら良いだけ。
コレクションでチェックボックスを配置して、そのON/OFFをサーバサイドで拾う
こっちが本題。
リクエスト時にサーバ内でコレクションを生成し、それをViewに反映させる場合等、それぞれのチェックボックスのnameを動的に生成しないといけない場合に使用する。
この場合は、以下のようにnameに
キー + [Value値]
を設定する。
@for(elm <- resForm.list) {
<label><input type="checkbox" name="test[@elm.value]" value="@elm.value" />@elm.chars</label>
}
Formでlist(text)にマッピングさせてあげると、フォーム情報を取得する際には、チェックされたチェックボックスのvalue値のみが格納されたListを取得することができる。