Struts 1.x と Struts 2.x の違いを知りたい
2 に答える
主な違いは、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 のアクション クラスで、より簡単な方法で行われます。
これはまったく別の Web フレームワークです... Struts2 は基本的に古い Webwork です。
いくつかの違い:
- Struts2 は POJO で動作し、ActionForm では動作しません。リクエストのすべての属性は、「標準」の Java クラスに取り込まれます。
- Struts2 アクションはサーブレット API と結合されていないため、パラメーターとして HttpServletRequest および HttpServletResponse を受け取りません。また、それらはステートフルです (Struts 1 アクションはステートレスでした)。
- Struts2 には、Interceptor API のような多くの拡張機能に加えて、多くの統合があります。
- 構成が全然違います。
最新の Web フレームワークを優先して、Struts1 を「廃止」することをお勧めします。