-
Tomcat、Turbine、その他多くの Apache プロジェクトと同様、Struts はオープン ソース ソフトウェアであり、これが利点の 1 つです。開発者がその内部実装メカニズムをより深く理解できるようにします。 Struts オープン ソース フレームワークは、開発者が Java Servlet および JavaServer Pages (JSP) テクノロジに基づいて Web アプリケーションを簡単に構築できるようにするために作成されました。 Struts フレームワークは、開発者に統一された標準フレームワークを提供します。Struts をベースとして使用することで、開発者はアプリケーションのビジネス ロジックにさらに集中できます。 Struts フレームワーク自体は、Java Servlet および JavaServer Pages テクノロジーを使用した Model-View-Controller (MVC) 実装です。
具体的には、Struts の利点は次のとおりです。
1. 明確な構造で MVC モデルを実装し、開発者がビジネス ロジックの実装のみに集中できるようにします。
2. 利用できるタグが豊富であるStrutsタグライブラリ(Taglib)を柔軟に活用できれば開発効率が大幅に向上します。さらに、国内の JSP 開発者に関しては、JSP に付属の共通タグを使用するだけでなく、独自のタグを開発することはほとんどありません。おそらく Struts が良い出発点となります。
3. ページ ナビゲーション: ページ ナビゲーションは将来の開発の方向性になります。これにより、システムのコンテキストがより明確になります。設定ファイルを通じてシステム全体の各部のつながりを把握することができ、後のメンテナンスに非常に役立ちます。この利点は、別の開発者グループがプロジェクトを引き継ぐ場合にさらに明らかになります。
4. 例外処理メカニズムを提供します。
5. データベース接続プールの管理
6. I18Nをサポート
欠点:
1. 表示層に移動するときは、ほとんどが jsp に直接移動するように設定する必要があります。10 個ある場合は、転送を設定する必要があります。表示層で jsps を構成する場合、Struts を 10 回構成する必要があります。これには、場合によってはディレクトリやファイルの変更が含まれません。構成を変更するたびに、プロジェクト全体を変更する必要があることに注意してください。ビジネスの変更が複雑で頻繁なシステムの場合、そのような操作は想像を絶するほど簡単です。今では何十人、何百人が私たちのシステムを同時に使用しており、私がどれほど困っているか想像できるでしょう。
2. Struts アクションはスレッドセーフである必要があり、1 つのインスタンスのみがすべてのリクエストを処理できます。したがって、アクションで使用されるすべてのリソースを均一に同期する必要があり、これによりスレッド セーフティの問題が発生します。
3. テストが不便 Struts の各アクションは Web 層と結合しているため、テストが Web コンテナに依存しており、単体テストの実装も困難です。ただし、単体テストを実装できる Junit 拡張ツール Struts TestCase があります。
4. 型変換 Struts の FormBean はすべてのデータを String 型として扱い、型変換には Commons-Beanutils ツールを使用できます。ただし、その変換はすべてクラス レベルで行われ、変換タイプは構成できません。型変換中にエラー メッセージをユーザーに返すことも非常に困難です。
5. Servlet への依存度が高すぎる。Struts は Action を処理するときに ServletRequest と ServletResponse に依存する必要があるため、Servlet コンテナを取り除くことができません。
6. フロントエンドの表現言語に関しては、Struts は JSTL を統合しているため、主に JSTL 表現言語を使用してデータを取得します。ただし、JSTL の式言語は、コレクションとインデックスのプロパティの処理が非常に弱いです。
7. アクションの実行を制御するのが難しい Struts がアクションを作成する場合、その実行順序を制御するのは非常に困難です。機能要件を実現するには、サーブレットを書き直す必要がある場合もあります。
8. アクションの実行前後の処理 Struts がアクションを処理する場合、アクションの処理前後の処理が困難になります。
9. イベントのサポートが不十分である Struts では、フォームは実際には Action クラス (または DispatchAction) に対応します。Struts では、フォームは実際には 1 つのイベントにのみ対応します。イベントは、コンポーネント イベントと比較して粒度の粗いイベントです。
Struts の重要なフォーム オブジェクトである ActionForm は、アプリケーションを表すオブジェクトです。フォームはイベントに対応するため、これらのフィールドは少なくとも複数のフィールドを含みます。フォーム内のこれらのフィールドに粒度を絞り込む、つまり 1 つのフィールドが 1 つのイベントに対応する場合、単純に Struts を使用することはできません。もちろん、JavaScript を組み合わせることによっても実現できます。
この記事は CSDN ブログからのものです。転載する場合は出典を明記してください: http://blog.csdn.net/zhrl0000/archive/2009/12/17/5027947.aspx
-