2011-01-14 8 views
1

私のストラット2ウェブアプリには、ウェブページ上にいくつかのメニュータブがあります。これらのメニュータブは、クリックするとajaxアクションを起動します。これらのアクションはすべて単一のアクションクラスになります。このアクションクラスは、要求をヘルパークラスにルーティングします。ヘルパークラスには次のようなメソッドがあります:
アクション= thisの場合、
アクションが=の場合は、
というように、各アクション(つまり各タブ)ごとに行います。
誰かがこのデザインに関するコメントを提供することができますか。これはstruts 2の正しい使用ですか?あるいは、別々のアクションクラスを用意する必要がありますか? はまた、ヘルパークラスのための任意の標準的な慣行(すなわち、それは静的、シングルトン、スレッドセーフなどでなければなりません)思考のstruts2アクションクラス-1クラス(ajax)リクエストごと?

+0

コード例をご覧ください。 –

+1

ああ男の子。これは少し難しいかもしれない..一般的なヒント?コードサンプルがなければ少し難しいと私は理解しています。 – Victor

答えて

1

カップル:?

  • 処理するために、Actionクラスを使うことには何も問題はありません複数のstruts2アクション。 struts2では、特定のアクションをクラスのメソッドにルーティングできます。これは、クラス自体が有用な整理装置である場合に役立ちます。たとえば、作成、読み込み、更新などのウィジェットを作成し、CreateWidgetAction、ReadWidgetActionなどのクラスを設定するよりも、クラッタの原因となるWidgetActionクラスがあればいいですその上にcreate()、update()などのメソッドを追加します。私はそれがあなたの事例では素敵なフィット感ではないと思っています。あなたが何を描いているのか(異なるメニュータブ)、確かにそれを行うことができます。コードを維持しながら見るファイルが少なくて済みます。

  • これらの異なるメソッドと結果をレンダリングする異なるJSPに異なるアクションをマップする必要があることに注意してください。

  • ヘルパークラスに関して、私のアドバイスは、ビュー+コントローラ関連のロジックをActionクラスに入れて、モデルロジックを他のクラス(おそらくヘルパークラス)のままにしておくことです。ヘルパークラスがプレゼンテーションから独立したデータを計算している場合、これは確かに正当です。しかし、ヘルパークラスが単純にビューを準備している場合は、論理をアクション自体に入れてください。

関連する問題