久しぶりにクライミング以外の話題。
まぁ当たり前なのだけど、HTMLのcheckboxでformを送信するとき、checkが入っていないとサーバーに値自体送信されない。
このため、例えばサーバー側で情報をセッション領域などに入れて持ちまわす場合、
一旦チェックを入れた状態を保持してしまうと、それを外すことが画面からの操作ではできなくなってしまう。
その問題の解決には、Springではcheckboxと一緒にhidden項目を作って、それを一緒に送信するのがセオリーみたい。
<input type="checkbox" value="true" name="springCheckboxTest" id="springCheckboxTest"> <input type="hidden" value="on" name="_springCheckboxTest">
こんな感じでcheckboxのnameの先頭にアンスコつけたnameのhidden項目を送信すると、
勝手にspring側でバインドしてくれるみたい。
そして、上記のようなhtmlはspringのformタグを使えば出力可能とのこと。
<form:checkbox path="springCheckboxTest" />
なるほどね!