17

Struts 1.x と Struts 2.x の違いを知りたい

4

2 に答える 2

18

主な違いは、Struts1.xでは要求がサーブレットに直接送信されるのに対し、Struts2.xでは要求と応答がインターセプターまたはフィルターのスタックを通過することです。通常のロジックは Filter クラスに配置でき、開発者はビジネス ロジックに集中できます。これに加えて、ディレクトリ構造にも違いがあります。

Struts1.x と Struts2.xのトピックごとの違いを知っておくことをお勧めします。http://www.geekinterview.com/question_details/64360の引用は次のとおりです。


1.アクションクラス

Struts 1.x では、アクション クラスは Action (または DispatchAction) クラスを拡張する必要があり、execute メソッドには多数のパラメーターと ActionForward 戻り値の型がありますが、struts 2.x では、アクション クラスは、execute メソッドが a のみを返す単純な pojo にすることもできます。入力パラメータなしの文字列。


2. サーブレットの依存関係

コンテナーは Struts2.x を処理しません。Struts1.xとは異なり、アクションは要求/応答の対として処理され、 struts2.xアクションは元の要求と応答に引き続きアクセスできます。


3. 入力を取得する

  • Struts1.x では、フォームBean を使用してプロパティ、ゲッターとセッターを定義します。struts2.xでは、ゲッター/セッターはアクション クラス自体で定義されます。
  • Struts1.xフォーム Bean クラスは ActionForm または ValidatorForm を拡張する必要がありますが、Struts2.x Bean は POJO にすることもできます。

4. テスタビリティ

  • Struts1.x の execute() メソッドは、テスト用にサーブレット API を公開します。
  • Struts2.x 依存性注入は、テスト プロセスを簡素化するために使用されます。

5. 表現言語

  • Struts1.xはその式言語として JSTL を使用しますが、Struts2.x はJSTLよりも非常に強力な式言語としてOGNL (Object Graphic Notation Language) を使用します。
  • Struts2.xは JSTL も使用できます。

6. 型変換

  • Struts1.x では、プロパティはほとんど文字列形式であり、コンバーターは構成できないクラスごとです。
  • Struts 2.xは型変換に OGNL を使用します

7. 検証

サーバー側の検証は、Struts2.x のアクション クラスで、より簡単な方法で行われます。

于 2010-07-12T12:25:09.587 に答える
14

これはまったく別の Web フレームワークです... Struts2 は基本的に古い Webwork です。

いくつかの違い:

  • Struts2 は POJO で動作し、ActionForm では動作しません。リクエストのすべての属性は、「標準」の Java クラスに取り込まれます。
  • Struts2 アクションはサーブレット API と結合されていないため、パラメーターとして HttpServletRequest および HttpServletResponse を受け取りません。また、それらはステートフルです (Struts 1 アクションはステートレスでした)。
  • Struts2 には、Interceptor API のような多くの拡張機能に加えて、多くの統合があります。
  • 構成が全然違います。

最新の Web フレームワークを優先して、Struts1 を「廃止」することをお勧めします。

于 2009-04-27T12:43:25.583 に答える