わさび唐辛子

いざという時のための備忘録

【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を取得することができる。