2007年10月9日火曜日

Teedaで入れ子の...入れ子のチェックボックス

スズキです。

現在、Teeda案件やってます。
itemsの入れ子の…入れ子の中にチェックボックスがあるところを
担当することになりました。
(ある項目ごとにカレンダーがあり、その日付ごとにチェックボックスがあるようなやつです)

表示だけなら、大丈夫なので、
List<Map>のitemsで気合で作りました。

そして、問題のフォーム情報の送信部分です。
入れ子が多いと、DTOの配列&itemsSaveでいけるのかなー
と思いつつ、
(実験してないけど、できなさそうだなー、と見切ってしまいました)
"Teeda Ajax"で逃げれないかなー?
と思いつつ、
ちょうど近くにいたiret-ceoに相談したところ、
http://iret-ceo.blogspot.com/

複数のチェックボックスのname属性に同じ名前いれて、
Pageのフィールドでその名前の配列(String)を宣言しとけば、
その配列にvalueの値が勝手にはいるよ。

と、貴重な情報がもらえました。
彼は、以前、ある案件でTeedaのHTMLをVelocityで生成していた剛の者です。

ということで、DTOの配列&itemsSaveは検証せず、
上記方法で実現することにしました。

valueの値はダイナミックプロパティにて、
必要な情報を(エンコードして)埋め込むようにしています。

Submit時に呼び出されるメソッドでは配列の中の値をパース(デコード)して、
適当に処理します。

とりあえず、今回のケースは、上記の方法で対応できました。
(Validateがかかるときなどは、またいろいろあるんだろうなー。)

--
blog: http://suz-lab.blogspot.com/

0 コメント: