- - PR -
STRUTSアクションフォームにVector型変数は定義できますか?
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-08-31 11:55
いつもお世話になります。STRUTSに苦戦してます。
アクションでVectorにデータを格納しjspに表示したいのですが、 form.javaでVector型変数を定義できず困っています(当然int,Stringはできますが)。 action.javaで、たとえば MyForm myform = new MyForm();としてsetterでデータをセットする際に、 Vector vec = new Vector(); vec.add("data");dataは任意ですが・・ myform.setData(vec); としてデータをjspに送りたいときに、 MyForm.javaクラスに Vector型の変数dataおよびsetter,getterを定義しなければ ならないと思うのですが、アクションフォームクラスMyForm.javaに Vector型は定義できないと表示されます。 解決方法はあるのでしょうか? どうしてもデータを公開できないため分かりづらくて誠にすいません。 参考になるページ等ございましたらお願いします。 |
|
投稿日時: 2005-08-31 12:17
rockmanと申します。
正直、StrutsでVectorを使ったことがないため、的を得ていないかもしれませんが、 使っていない理由はListインスターフェースをインプリした、ほぼ同等の機能を持つArrayListを使用している為です。 最近のJavaでは、Listに関して、ジェネリック仕様が追加されたりしていますので、 ここら辺で、Vectorを使用するのは止めたほうが良いかもしれないと認識しています。 Struts側から内部的に使用するメソッドもほぼ共通ですので、 同じ使用方法が可能だと思います。 Strutsがサポートしていない理由としては (使ったことがないため本当に駄目かどうかは、 norinorimiさんのテスト結果を信用しきっていますが) iterateのタグ内で当然リフレクションでオブジェクトを評価する過程で、 Vectorは、推奨されていないし、同じ機能が、List(ArrayListなど*List)で 実現されているし、それだと評価も一度ですむし…みたいな理由だと思います。 あまりないと思いますが、モデル層やインテグレーション層で、Vectorの戻り値が、 来るようであれば、設計段階でつぶしておく必要があったように思えます。 参考にならない意見ですみません・・・。 では。 |
|
投稿日時: 2005-08-31 12:51
rockman様 貴重な情報ありがとうございます。勉強になります。
iterateタグを利用してvectorクラスに格納したデータをアクションから 送るのはできました。 私のつたない文章のせいで伝わらずすいません。 Vector data; setter,getter・・・ という各型をフォームでできない理由を探っています. 誤解を招く表現ですいませんでした。 |
|
投稿日時: 2005-08-31 13:17
すいません。上記と異なる部分でエラーが起こっていたせいでした。
誠にすいませんでした。 違う質問になるのですが、 アクションでVectorにデータを格納する際に、さらにそのなかでVectorを用いてデータを格納する場合は、beanタグライブラリのdefineタグを用いるのでしょうか? 用いたことがないので良く分かりません。例文等載っているページございましたら お願いします |
1