- - PR -
JSPの配列項目のセッターが動かない
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-06-03 10:39
Struts1.2を使用しています。
このActionFormのゲッターで、次のエラーとなります。 java.lang.NullPointerException コード内容は public class M37A041F extends ActionForm { private String[] modStaYt_DY = null; public String[] getModStaYt_DY() { return modStaYt_DY; } public void setModStaYt_DY(String[] modStaYt_DY) { this.modStaYt_DY = modStaYt_DY; } 次のようにJSPを定義しています。 <logic:iterate id="mode" name="modes" type="bean.Mode"> <html:text size="4" property="modStaYt_DY" value="<%= mode.getModStaYt_DY()%>" /> </logic:iterate> Eclipseのデバックでトレースしてみると、セッターが動いていません、 Jspの定義に何か追加する必要があるのでしょうか? 参考書を見ても分かりませんでした、教えてください。 | ||||||||
|
投稿日時: 2005-06-03 11:00
getModStaYt_DY で NullPointerException が発生することは考えにくいですね。modStaYt_DY が null なら null を返すだけですから。それとも NPE が発生しているのは getter を呼び出した側?
スタックトレースをみてどこで発生しているのかもう一度確認してみましょう。 ActionForm の使い方がわからないのであれば Struts のサンプルを参考にしましょう。 | ||||||||
|
投稿日時: 2005-06-03 11:33
NPEが発生しているのは、Actionの次の部分です。
この時、変数:modStaYt_DYを見てみると、JSPよりデータが入力されている のにもかかわらず、NULLとなっていました。 for(int i=0; i<modStaYt_DY.length; i++){ 問題は、配列のセッターが思い通りに動かない、その結果、 modStaYt_DY.lengthにおいて、配列の個数が取得できなくてNPEになるのだと思いますが。 さらなる、指摘お待ちしております。 | ||||||||
|
投稿日時: 2005-06-03 12:37
想像で回答してくれって事ですか? struts-configの関連する部分や、一連のソースを 提示するくらいのことはしましょうよ。 | ||||||||
|
投稿日時: 2005-06-03 13:19
はい、失礼しました。struts-configは
Actionは
です、まだ、不足するところがあれば、言ってください。 よろしくお願いします。 | ||||||||
|
投稿日時: 2005-06-04 19:23
リクエストのパラメータの名前・値と、
アクションフォームのプロパティとの関係に 不整合等の問題があるのではないでしょうかね。 初期時にnullだと困ると言う場合、 ActionFormのコンストラクタやフィールド宣言で 空の配列を作ってやると言う方法もありますね。 private String[] modStaYt_DY = null; ↓ private String[] modStaYt_DY = new String[0]; | ||||||||
|
投稿日時: 2005-06-07 14:00
かつのり様ありがとうございました。
初期化について、理解できました。
その後、JSPのデータについて、ActionFormの配列にてセット・ゲットするだけの シンプルな命令のみにして実行してみたところ、動作することが確認出来ました。 どうも、ここで載せた命令以外の個所に、ご指摘のとおり、何かの悪さがあるようです。 そのバグはまだ不明ですが地道にトレースしていこうと思っています。 従って、このスレッドの質問は解決できました。 どうも、余計なバグが他にあったようです、たいへん失礼しました。、。 もし、また、迷路に入り込んだら、その点に絞って質問させて貰います。 ありがとうございました。 |
1