- PR -

struts使用時、requestオブジェクトに登録するJavaBeanについて

1
投稿者投稿内容
rockman
会議室デビュー日: 2004/11/12
投稿数: 7
投稿日時: 2005-08-18 17:21
いつも参考にさせていただいています。
首記の件で皆様方の意見をお伺いしたいと考えておりますので、
是非、ご意見をお聞かせください。
現在、OSSのフレームワークを初めてまじめに勉強中です。

条件
(1)strutsでは、自動的にpost,get時のリクエストパラメータを、
JavaBeans(DynaBeanの際にはコレクション)に格納している。
(2)通常、サーバ側でデータを作成した後に、requestオブジェクトに、
オブジェクトを登録して返し、JSP側で参照する。

上記条件の場合、(1)で必要なpropertyと、(2)で必要なpropertyが分かれている為、
混同するのを嫌い現在、ActionForm(入力用)(実際にはDynaBean)のほかに、
勝手に、ViewBean(レスポンス用)のようなものを
作って開発していたのですが、皆様はどうされているのでしょうか?

開発標準というか、手法というか、規約の問題だとは思いますが、
皆様はすべてDynaFormに登録されているのでしょうか?

申し訳ございませんが、こういう理由で分けている、
こういう理由で、すべてActionFormに統一しているなどの意見を、
添えていただけるとありがたく存じ上げます。

しょうも無い質問かと思いますが、ご教示いただけますよお願い申し上げます。

以上
Anthyhime
ぬし
会議室デビュー日: 2002/09/10
投稿数: 437
投稿日時: 2005-08-18 17:59
Sessionに格納する必要のない表示系のデータはおっしゃるとおりRequestに格納するのがいい手法だと思います。
逆にリクエストをまたがって値を保持する必要のあるデータはActionFormに設定しておくのがいいと思います。
masa
大ベテラン
会議室デビュー日: 2005/05/11
投稿数: 108
投稿日時: 2005-08-18 22:58
引用:

rockmanさんの書き込み (2005-08-18 17:21) より:
開発標準というか、手法というか、規約の問題だとは思いますが、
皆様はすべてDynaFormに登録されているのでしょうか?

申し訳ございませんが、こういう理由で分けている、
こういう理由で、すべてActionFormに統一しているなどの意見を、
添えていただけるとありがたく存じ上げます。



私の経験上では入力用にActionForm、出力用にDTOを使用する形が一番
すっきりした構成を取れていました。
ActionFormの内容をActionクラスでDTOに変換後サービス層に渡し、
サービス層からの戻り値をDTOで受け取って、そのままsetAttributeす
るといった感じです。
ActionFormの役割はリクエストパラメータを格納することなので、出力
用に使用するのは抵抗があります。StrutsはViewを切り離せる構成とな
っていますが、View用にActionFormを使用していると変な部分で依存性
が残ってしまう結果にもなりますし。

ただ初期値をサービス層から取得しセットしておく必要のある編集用
フォーム等において、サーバサイドvalidationにひっかかった場合は
View用のBeanを再セットしなければならないなどの欠点もありますね。
この時View用にActionFormを利用していた場合は、リクエストパラメ
ータがActionFormにそのままセットされるので楽チンです。

まだまだ若輩者の意見ではありますが、ご参考になれば。

現在のプロジェクトでは開発基準が違う為、なかなかてこずっています^^;
るぱん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 1370
投稿日時: 2005-08-19 01:27
るぱんです。

個人的には、
入力にActionForm
出力にArrayList+Beanのような組み合わせです。

理由は、
Viewでゴチャゴチャ余計な事をやらせないためです。

Strutsは有る意味なんでも出来てしまうので
たいへん。

MVCの概念に直感的に近づけようとしたら上記のような結論に
たどり着いた次第です。
rockman
会議室デビュー日: 2004/11/12
投稿数: 7
投稿日時: 2005-08-19 13:52
Anthyhime様、masa様、るぱん様ご回答ありがとうございました。
やはり処理結果は、ActionFormに含めない方を皆様選択されているんですね。
その形式としては、私もJavaBeans形式のみを使用しています。

皆様と同じ意見で安心しました。

基本的に、業務ではOSSを使用することがほとんど無いので、
周りにも相談できず迷っていました。
非常に助かりました。ありがとうございました。

一人だと愚痴もいえないので悶々としています(笑)

以上
1

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