checkboxの扱い
WebのformでCheckboxのUIを使う場合問題になるのが、Checkboxがcheckされていない場合にパラメータ自体が投げられず、実装によってはアプリ上で保持している値がクリアされないというものがある。
hiddenなどを使ってCheckboxが投げれら無かった場合の処理を記述して回避したりするが、その手法が Struts2 の s:checkbox と CheckboxInterceptor の組み合わせで実装されている。
<s:checkbox name="mailMagazine" key="label.mailmagazine" />
アクションかモデルで次のようなプロパティを用意しておく
public void setMailMagazine( boolean onoff ) { mailMagazine = onoff; } public boolean getMailMagazine() { return mailMagazine; }
これで、泥臭い部分はCheckboxInterceptorがやってくれるのでmailMagazineがチェックされていれば trueがチェックされていなければ falseがプロパティにセットされる。