- ベストアンサー
Strutsでチェックボックスの値を取得する方法
- 明細行のチェックボックスで、選択した状態で画面再表示時にチェックを外した場合、再度画面を表示すると外したはずのチェックが戻ってしまいます。良い対処方法があれば、ご教授をお願いします
- チェックボックスの値を取得するために、Strutsを使用しています。しかし、選択した状態で画面を再表示すると外したはずのチェックが戻ってしまいます。どうすれば解決できるでしょうか?
- Strutsを使ってチェックボックスの値を取得していますが、選択した状態で画面を再表示するとチェックが戻ってしまいます。解決策を教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
>>resetメソッドを定義するのは、ActionFormのクラスです。 >ActionFormのクラスに下記resetメソッドを定義しています。 >public void reset(ActionMapping mapping, >HttpServletRequest request){ >testCheckBox=false; >} ActionFormがもっているViewListのtestActionFormについてです。 public void reset(ActionMapping mapping, HttpServletRequest request){ for(int i=0;i<viewList.size();i++){ ((testActionForm)viewList.get(i)).setTestCheckBox(false); } }
その他の回答 (3)
わはは。 私もやりました・・・(笑)。 既に回答は出ていますが、ActionFormのresetメソッドで、きちっと初期化(と、いうかリフレッシュ)するということです。 ActionFormのresetメソッドは、無いとコンパイルエラーが確か出るので、メソッド自体は既に記述していると思うのですが(中身が空でも)。 >画面ActionForm内に、testActionFormのListを作成し、その中にチェックボックスがある場合、適用されないのでしょうか? チェックボックスが複数(List Size分)あるってことですよね? 今、実は手元に動いている物があるので、大丈夫だと思うのですが・・・(よく見たら、質問者さんの状況に色々と条件が付加されている内容でわかりにくいので、ソースの掲載はあえてしません)。 No.3さんのやり方でやってみて、だめなら再質問ください。
お礼
suzume00さん、回答ありがとうございます >チェックボックスが複数(List Size分)あるってことですよね? その通りです。 >ソースの掲載はあえてしません 機会があれば、ぜひ教えてください。 色々な手法を見て、勉強したいので・・・ ご意見ありがとうございました
ActionFormに定義してあるtestActionFormと、そのプロパティViewListの内部のクラスtestActionFormは同一クラスということですか? resetメソッドを定義するのは、ActionFormのクラスです。 そこで、ViewList全てのBeanについてfalseを設定してみてはどうでしょうか。
補足
emi2006さん、たびたび回答ありがとうございます。 ご質問の件ですが、 >ActionFormに定義してあるtestActionFormと、そのプロパティViewListの内部のクラスtestActionFormは同一クラスということですか? 同一クラスですが、プロパティViewList(List型)の中にあるtestActionFormの内容は、明細1行毎に値は異なります >resetメソッドを定義するのは、ActionFormのクラスです。 ActionFormのクラスに下記resetメソッドを定義しています。 public void reset(ActionMapping mapping, HttpServletRequest request){ testCheckBox=false; } >そこで、ViewList全てのBeanについてfalseを設定してみてはどうでしょうか。 すいません。何か参考になるソースかホームページがあれば教えていただけないでしょうか? よろしくお願いいたします
testActionFormとListの関係が分からないので正確でないですが、 resetを定義するのは、Actionに定義してあるActionFormですよ。 この場合、 testActionFormのプロパティとして、testActionFormのリストを持ってると言うことですか?
補足
emi2006さん、回答ありがとうございます ご質問ですが、 testActionFormには、「ViewList」(List型)のプロパティがありまして、その中にtestActionFormが複数行存在する形です。 testActionForm(Actionに定義してあるActionForm) └ViewList(List型) ├testActionForm(明細行 1行目) ├testActionForm(明細行 2行目) ├testActionForm(明細行 3行目) ├testActionForm(明細行 4行目) ├testActionForm(明細行 5行目) ~ └testActionForm(明細行 N行目) よろしくお願いします。
お礼
emi2006さん 返事が送れて申し訳ありません 回答ありがとうございます。 確かに、これならうまくいく気がします。 明日試して、結果を報告いたします。
補足
emi2006さん 教えていただいた方法で実行してみたら、うまくできました!! ありがとうございます。 ただ・・・ 新たに下記問題が発生して困っています (1)あるボタンを押下すると、チェックボックスを選択にしているのに、再表示すると未選択になる。 (2)たまに 「java.lang.IndexOutOfBoundsException: Index: 1, Size: 1」というエラーが発生する。 押下するボタンに引数を持たせて、その引数により、教えていただいた方法を読み飛ばす等試してみましたが ダメでした・・・(自分のやり方が悪いだけ?) 何度も申し訳ないですが、良い対処方法やアドバイスがあれば、ぜひお願いいたします。