• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Strutsでチェックボックスの値を取得する方法)

Strutsでチェックボックスの値を取得する方法

このQ&Aのポイント
  • 明細行のチェックボックスで、選択した状態で画面再表示時にチェックを外した場合、再度画面を表示すると外したはずのチェックが戻ってしまいます。良い対処方法があれば、ご教授をお願いします
  • チェックボックスの値を取得するために、Strutsを使用しています。しかし、選択した状態で画面を再表示すると外したはずのチェックが戻ってしまいます。どうすれば解決できるでしょうか?
  • Strutsを使ってチェックボックスの値を取得していますが、選択した状態で画面を再表示するとチェックが戻ってしまいます。解決策を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
noname#19197
noname#19197
回答No.3

>>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); } }

miiha
質問者

お礼

emi2006さん 返事が送れて申し訳ありません 回答ありがとうございます。 確かに、これならうまくいく気がします。 明日試して、結果を報告いたします。

miiha
質問者

補足

emi2006さん 教えていただいた方法で実行してみたら、うまくできました!! ありがとうございます。 ただ・・・ 新たに下記問題が発生して困っています  (1)あるボタンを押下すると、チェックボックスを選択にしているのに、再表示すると未選択になる。  (2)たまに 「java.lang.IndexOutOfBoundsException: Index: 1, Size: 1」というエラーが発生する。 押下するボタンに引数を持たせて、その引数により、教えていただいた方法を読み飛ばす等試してみましたが ダメでした・・・(自分のやり方が悪いだけ?) 何度も申し訳ないですが、良い対処方法やアドバイスがあれば、ぜひお願いいたします。

その他の回答 (3)

noname#45950
noname#45950
回答No.4

わはは。 私もやりました・・・(笑)。 既に回答は出ていますが、ActionFormのresetメソッドで、きちっと初期化(と、いうかリフレッシュ)するということです。 ActionFormのresetメソッドは、無いとコンパイルエラーが確か出るので、メソッド自体は既に記述していると思うのですが(中身が空でも)。 >画面ActionForm内に、testActionFormのListを作成し、その中にチェックボックスがある場合、適用されないのでしょうか? チェックボックスが複数(List Size分)あるってことですよね? 今、実は手元に動いている物があるので、大丈夫だと思うのですが・・・(よく見たら、質問者さんの状況に色々と条件が付加されている内容でわかりにくいので、ソースの掲載はあえてしません)。 No.3さんのやり方でやってみて、だめなら再質問ください。

miiha
質問者

お礼

suzume00さん、回答ありがとうございます >チェックボックスが複数(List Size分)あるってことですよね? その通りです。 >ソースの掲載はあえてしません 機会があれば、ぜひ教えてください。 色々な手法を見て、勉強したいので・・・ ご意見ありがとうございました

noname#19197
noname#19197
回答No.2

ActionFormに定義してあるtestActionFormと、そのプロパティViewListの内部のクラスtestActionFormは同一クラスということですか? resetメソッドを定義するのは、ActionFormのクラスです。 そこで、ViewList全てのBeanについてfalseを設定してみてはどうでしょうか。

miiha
質問者

補足

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を設定してみてはどうでしょうか。 すいません。何か参考になるソースかホームページがあれば教えていただけないでしょうか? よろしくお願いいたします

noname#19197
noname#19197
回答No.1

testActionFormとListの関係が分からないので正確でないですが、 resetを定義するのは、Actionに定義してあるActionFormですよ。 この場合、 testActionFormのプロパティとして、testActionFormのリストを持ってると言うことですか?

miiha
質問者

補足

emi2006さん、回答ありがとうございます ご質問ですが、 testActionFormには、「ViewList」(List型)のプロパティがありまして、その中にtestActionFormが複数行存在する形です。 testActionForm(Actionに定義してあるActionForm)  └ViewList(List型)    ├testActionForm(明細行 1行目)    ├testActionForm(明細行 2行目)    ├testActionForm(明細行 3行目)    ├testActionForm(明細行 4行目)    ├testActionForm(明細行 5行目)            ~    └testActionForm(明細行 N行目) よろしくお願いします。

関連するQ&A