- PR -

アクションクラスの設計について

1
投稿者投稿内容
mase
会議室デビュー日: 2003/09/24
投稿数: 6
投稿日時: 2003-12-11 20:28
お世話になっております、maseと申します。

皆さんは、strutsでJSPの遷移を行う場合、アクションクラスは
どの様な設計をされているのでしょうか?

今回、初めてstrutsを使うのですが、大抵の書籍には、パターン1の
様にJSPの後にアクションクラスを使っていますが、一部の書籍では、
パターン2の様な設計を薦めている場合もあります。

一概にどちらが良いと言えないと思いますが、皆さんの経験から
この場合はこちらを使った方が良いという様な、一つの指標など
ありましたら、ご教授願えないでしょうか。
よろしくお願い致します。

(個人的には、パターン2が処理が明確に分けられて良いのではと
 思い、サンプルを作成していたのですが、逆に構成が複雑になり
 シンプルなパターン1に変更しようか考慮しています)


<パターン1>
ヘッダJSP

後処理Actionクラス(ヘッダJSP)


明細JSP

後処理Actionクラス(明細JSP)


<パターン2>
前処理Actionクラス(ヘッダJSP)

ヘッダJSP

後処理Actionクラス(ヘッダJSP)


前処理Actionクラス(明細JSP)

明細JSP

後処理Actionクラス(明細JSP)
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2003-12-12 00:19
うーん、私には ヘッダ/明細JSP・前処理/後処理Actionクラス がどんなものを指すのか理解できません。
これって一般的な表現なんでしょうか?でなければ説明していただければ幸いです。
一般的な表現だとしたら無視してください。ご存知の方がフォローしてくれるかと
ふーばー
大ベテラン
会議室デビュー日: 2003/06/05
投稿数: 163
投稿日時: 2003-12-12 08:40
ヘッダ/明細にそれぞれ入力フォームが存在する場合、アクションに関連付けできるアクションフォームが1つであるため、パターン1では、「後処理Actionクラス(ヘッダJSP)」に、ヘッダ/明細のどちらかを関連付けなければなりません。そのため、ヘッダの入力内容を取得して、明細に関連データを表示する、という処理をする場合に、同時に2つのフォームを操作する必要があります。しかし、パターン2では、アクションとアクションフォームを1対1に関連付けることができるため、アクションの役割をすっきり分けることができます。

ただ、この2つの方法は賛否両論なのでどちらがいいというものでもないと思います。上記のような要件があるときはパターン2で、ただの遷移はパターン1というように組み合わせることも可能です。

私は「パターン2」派です。
でくのぼう
大ベテラン
会議室デビュー日: 2003/10/06
投稿数: 162
投稿日時: 2003-12-12 12:30
Struts 開発者である Ted Husted 氏の Struts Catalog に
彼の提案する Action と JSP の設計方法が記述されています。

必ずこのとおりに組め、という類のものではありませんが
何らかの参考になるかと思います。

http://homepage2.nifty.com/ymagic/struts/HustedPageTranslate/catalog-jp.html
Anthyhime
ぬし
会議室デビュー日: 2002/09/10
投稿数: 437
投稿日時: 2003-12-12 16:03
パターン2がいいと思います。
mase
会議室デビュー日: 2003/09/24
投稿数: 6
投稿日時: 2003-12-12 17:21
皆さん、色々なアドバイスありがとうございます。


> うーん、私には ヘッダ/明細JSP・前処理/後処理Actionクラスがどんなものを指すのか
> 理解できません。
> これって一般的な表現なんでしょうか?でなければ説明していただければ幸いです。

私が勝手に付けた表現なので、一般的で無いかもしれません。
私としては、下記の様なイメージで前処理/後処理アクションと呼んでいます。

<前処理Actionクラス>
JSPを表示する前準備を行うアクションとなるでしょうか。
例えば、表示用Beanの生成、前画面からの遷移順序のチェック等が
それに当たると思います。

<後処理Actionクラス>
サブミットされた情報を処理するアクションで、ログイン画面で
DBと通信を行いユーザ認証を行うといった処理が該当すると思います。


やはり、皆さんパターン2を選択されているようですね。
目先の簡単さから、パターン1を選択しようと思っていましたが、色々
な面を考えるとパターン2の方が良さそうです。
ばんさんが書かれていたように、全てをパターン2にするのでは無く、
パターン1と組み合わせて使う方向で設計しようと思います。

でくのぼうさん、Struts Catalogの情報ありがとうございました。
読んでいて、なるほどという点がかなりあって勉強になります。
1

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