アプリ版:「スタンプのみでお礼する」機能のリリースについて

皆様お疲れ様です。
現在strutsのコーディングをしているのですが躓いている箇所がございましてお力をお借りしたいと思い、質問させていただきます。

ActionForm_Aの中にActionForm_Bの配列型を宣言しています。

//その他変数色々あってその下
private ActionForm_B[] af_b;

getter/setterとしては

public ActionForm_B[] getActionForm_B() {
return af_b;
}

public void setActionForm_B(final ActionForm_B[] setAfb) {
this.af_b = setAfb;
}

です。jspで表示するのは出来ますが、取得する際に
「javax.servlet.ServletException:BeanUtils.populate」
が表示されてActionForm_Bの配列型が取得出来ません。
indexedもやっていますし、IterateのindexIdも指定しています。

<logic:iterate id ="af_b" name="af_a" property="af_b" scope="request" indexId="index">
<html:hidden name="af_b" property="name1" indexed="true"/>
<html:hidden name="af_b" property="name2" indexed="true"/>
</logic:iterate>

表示されているhidden部のhtmlは
<input type="hidden" name="af_b[0].name1" value="鬼瓦権座武朗">
となっています。

これを表示している画面からsubmitしますと
javax.servlet.ServletException: BeanUtils.populate
と表示され落ちてしまいます。

これらの情報からなにか気付いた事、ご指摘等がありましたら是非ご意見を頂きたいと思います。
よろしくお願いします。

A 回答 (1件)

こんにちは。



「ActionForm_A」内の「ActionForm_B」配列を初期化してみてください。
iterateの中の動きは
1. getActionForm_B()を呼ぶ。
2. その中のひとつのインスタンスに関してsetterを呼ぶ。
※setActionForm_B(final ActionForm_B[] setAfb)が呼ばれるわけではありません。

上記2の時点でインスタンスが存在していないためエラーとなります。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
早速試して見ました所、うまく行きました。
ありがとうございました。

お礼日時:2005/11/11 09:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!