- PR -

STRUTSアクションフォームにVector型変数は定義できますか?

1
投稿者投稿内容
norinorimi
ベテラン
会議室デビュー日: 2005/07/28
投稿数: 51
投稿日時: 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型は定義できないと表示されます。
解決方法はあるのでしょうか?
どうしてもデータを公開できないため分かりづらくて誠にすいません。
参考になるページ等ございましたらお願いします。


rockman
会議室デビュー日: 2004/11/12
投稿数: 7
投稿日時: 2005-08-31 12:17
rockmanと申します。

正直、StrutsでVectorを使ったことがないため、的を得ていないかもしれませんが、
使っていない理由はListインスターフェースをインプリした、ほぼ同等の機能を持つArrayListを使用している為です。
最近のJavaでは、Listに関して、ジェネリック仕様が追加されたりしていますので、
ここら辺で、Vectorを使用するのは止めたほうが良いかもしれないと認識しています。
Struts側から内部的に使用するメソッドもほぼ共通ですので、
同じ使用方法が可能だと思います。

Strutsがサポートしていない理由としては
(使ったことがないため本当に駄目かどうかは、
norinorimiさんのテスト結果を信用しきっていますが)
iterateのタグ内で当然リフレクションでオブジェクトを評価する過程で、
Vectorは、推奨されていないし、同じ機能が、List(ArrayListなど*List)で
実現されているし、それだと評価も一度ですむし…みたいな理由だと思います。

あまりないと思いますが、モデル層やインテグレーション層で、Vectorの戻り値が、
来るようであれば、設計段階でつぶしておく必要があったように思えます。

参考にならない意見ですみません・・・。

では。

norinorimi
ベテラン
会議室デビュー日: 2005/07/28
投稿数: 51
投稿日時: 2005-08-31 12:51
rockman様 貴重な情報ありがとうございます。勉強になります。
iterateタグを利用してvectorクラスに格納したデータをアクションから
送るのはできました。
私のつたない文章のせいで伝わらずすいません。
Vector data;
setter,getter・・・
という各型をフォームでできない理由を探っています.
誤解を招く表現ですいませんでした。

norinorimi
ベテラン
会議室デビュー日: 2005/07/28
投稿数: 51
投稿日時: 2005-08-31 13:17
すいません。上記と異なる部分でエラーが起こっていたせいでした。
誠にすいませんでした。
違う質問になるのですが、
アクションでVectorにデータを格納する際に、さらにそのなかでVectorを用いてデータを格納する場合は、beanタグライブラリのdefineタグを用いるのでしょうか?
用いたことがないので良く分かりません。例文等載っているページございましたら
お願いします



1

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