- 締切済み
<nested:checkbox>実装方法について
一覧画面に<nested:checkbox>を実装したプログラムを作成しています。一覧に表示されているチェックボックスがチェックされている場合、ActionForm側に値がセット(value属性値)されるはずだと思ったのですが、うまくいきません・・・ サンプルソースを記述します <nested:iterate name="myForm" property="meisai" length="10" indexId="index"> <nested:checkbox property="check"></nested:checkbox> 上記のソースで、meisaiは「LinkedHashMap」を使用しています(もしかいして「List」以外は正常に動作しない?)。 すみませんが、知っている方ご教授お願い致します。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
全体が見えないです。 補足のコードは実際のものですか? エラーになる気がするのですが。 結論だけを言うと、ActionFormのMap型のプロパティに値を設定することは可能です。
チェックボックスの状態を、どうやってMapにするのですか? キーは? 値は?
お礼
テストで以下の様にロジックをAction(Webハンドラ)で記述し、実行した所画面上ではチェックされた状態で表示されました。 ActionFormクラス名を「ListClass」とする public void setActionForm(ListClass list) { // 明細一覧取得(ActionFormより) LinkedHashMap map = null; // 明細一覧再構築用変数 LinkedHashMap map2 = null; // 1レコード格納 HashMap map3 = null; map = list.getMeisai(); for (int iCnt=0;iCnt<10;iCnt++) { map3 = (HashMap)map.get(String.valueOf(iCnt)); map3.put("check", "on"); map2.put(String.valueOf(iCnt), map3); } // 画面に反映させる list.setMeisai(map2); } なので、Mapにcheck(キー値)にon(値)がセットされるのではないかと思っています。 Mapでチェックボックスの状態を取得することは不可能なのでしょうか?
ActionFormはどういうふうになってますか?
お礼
ActionFormは以下の通りです。 private LinkedHashMap meisai; public LinkedHashMap getMeisai() { return meisai; } public void setMeisai(LinkedHashMap meisai) { this.meisai = meisai }
お礼
すみません!今までの経緯でお話します。 明細一覧(meisai):LinkedHashMap 1明細 :HashMap 1明細(HashMap)の中身は以下の通り キー値 値 check :null code :0001 name :テスト名称 ※キー値(check)は画面上では<nested:checkbox>。 キー値(code、name)は画面上では<nested:write> HashMapには1明細のデータが格納されており、それを 10件分明細一覧(LinkedHashMap)に格納。 格納した明細一覧(LinkedHashMap)をActionFormに反映し、画面表示。 画面上の明細一覧に表示されてるチェックボックスをチェックし、アクション(submit)を起こす。 Action(Webハンドラ)で1明細(HashMap)を確認。 チェックされていれば、checkをキー値として値を取得した場合、「on」とでるはずが、ログを確認した所「null」で表示される。 質問の内容にあるサンプルソースは実際のものです。
補足
「結論だけを言うと、ActionFormのMap型のプロパティに値を設定することは可能です。」 上記コメントの事ですが、Map型のプロパティに値を設定するために何か気をつける事とかありますでしょうか?申し訳ないのですが、よろしくお願い致します。