- PR -

struts で radio

投稿者投稿内容
peta826
会議室デビュー日: 2005/04/04
投稿数: 6
投稿日時: 2005-04-05 18:43
taipingさん、返答ありがとうございます。

2005-04-05 15:31に書き込みしたソースのうち、getterのみを以下に書き換えてみました。
コード:
public String getData(int idx) {
  try{
    System.out.println("[GETTER] ok : [INDEX] " + idx + " : [DATA] " + data[idx]);
    return data[idx];
    //return "OK";
  }catch(Exception e){
    System.out.println("[GETTER] ng : [INDEX] " + idx);
    return "NG";
  }
}



getter 呼び出し側でもデバッグを出力させて、以下のような結果が得られました

出力結果
- [ getData(0) ] -------------------
[GETTER] ng : [INDEX] 0
NG
-------------------------------------
- [ getData(1) ] --------------------
[GETTER] ng : [INDEX] 1
NG
-------------------------------------

index は来てるようですが、data[idx] を参照できないようです・・・
ぬべたそ
ベテラン
会議室デビュー日: 2003/12/18
投稿数: 72
投稿日時: 2005-04-05 18:56
String data[]はどこかで初期化されていますか?

また、インデックス付きgetter内でExceptionをcatchしているようですが、そのExceptionの内容を出力した方が良いかも知れません。
るぱん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 1370
投稿日時: 2005-04-05 19:07
引用:

peta826さんの書き込み (2005-04-05 16:53) より:
ダメでした。

JSPの方は、きちんと
<input type="radio" name="data[0]" value="0">ラジオボタン1<br>
<input type="radio" name="data[0]" value="0">ラジオボタン1<br>
<br>
<input type="radio" name="data[1]" value="0">ラジオボタン1<br>
<input type="radio" name="data[1]" value="0">ラジオボタン1<br>
<br>
...
といった具合に表示されるのですが

このindex付きnameの getter/setter がどうしてもうまくいきません・・・


<logic:iterate name="List" id="loop" indexId="index">
<br>
<html:radio property="data[<%=index%>]" value="0" />ラジオボタン1<br>
<html:radio property="data[<%=index%>]" value="1" />ラジオボタン2<br>
<br>
</logic:iterate>
これと比べて、
valueの中身が一緒なので判断しずらいだろうなぁ・・・と感想。

だめだった場合は、何がどうだめだったのか書いていただかないと
判断付きません。
よろしくお願いします。
peta826
会議室デビュー日: 2005/04/04
投稿数: 6
投稿日時: 2005-04-05 19:36
返答ありがとうございます。

>るぱんさん
申し訳ありません、以後気をつけるようにします

>taipingさん
初期化してませんでした。
全ての原因はこれでした・・・

コード:
private String[] data = new String[1000];
public String getData(int idx) {
  return data[idx];
}
public void setData(int idx,String strings) {
  data[idx] = strings;
}



大変お恥ずかしい限りです。
るぱんさん、taipingさん、ありがとうございました!

スキルアップ/キャリアアップ(JOB@IT)