🍚

Struts2フレームワークを軽くまとめました。

2024/03/26に公開

最初に

最近参加するプロントエンドでStruts2を使うことになったので、Struts2フレームワークを軽くまとめながら勉強しました。

Struts Frameworkとは?

  • Strutsは、Model(モデル)、View(ビュー)、Controller(コントローラ)アーキテクチャを表すMVCモデルをベースとしたフレームワークです。
  • オープンソース プラットフォームであり、エンタープライズ エディション ウェブ アプリケーションを開発するために使用します。
  • ユーザーの要求を処理する要求ベースのフレームワークに基づいて開発され、要求ハンドラと応答ハンドラが存在します。
  • Ajax、REST、SOAPに対応しています。
  • アパッチプロジェクトの一部で行われます。

Struts1とStruts2の違い

  • Struts2はStruts1とウェブワークが結合した形態です
  • Struts2はStruts1のサーブレット方式からフィルター方式に変化、Action部分がPOJOで実装されます
  • XMLベースの環境設定、タグライブラリ支援、国際化支援など多様なユーティリティを提供します

StrutsFrameworkの特徴

  • 全く新しいフレームワーク
    -Strutsの時とは違うウェブワーク2のMVCアーキテクチャ選択
  • 直観的な開発
    -POJOベースの動作(Action)
  • ゼロコンフィギュレーション志向
    -デフォルトのサポートにより、設定の省略が可能です。
    -アノテーションの使用により、設定ファイルから設定を省略できます。
  • 高速リロード
    -変更された環境設定ファイルの愛用をウェブコンテナの再起動なしにリロードします。
  • POJO Action, POJO Form
    -フレームワークに従属しません。
  • 簡単なAjax実装
    -Ajaxテーマ対応タグ
  • 様々な表現式言語EL対応
    -JSTL使用可能です。
  • 様々なResultタイプのサポートとプロファイリング
    -JSPの他にプリマーカー(Free Marker)、ベロシティ(Velocity)などの使用が可能です。
    -リクエスト処理過程でプロファイリングによって最適化できる機能を提供します。
  • 依存性注入(DI)支援
    -Google Guideフレームワークを使用、コアオブジェクトのライフサイクルを管理します。

Strutsの動作と構造

Struts動作

  • Struts2はユーザーの要請を受けて円滑に作動できるように環境を設定します。
  • どのアクションを呼び出すかを決定した後、アクションを実行します。
  • Resultを実行した後、最終応答データをユーザーに返す役割コントローラーを提供します。

Struts構造

  1. StrutsPrepareAndExcecuteFilter
    • ブラウザからリクエストを受けて、個々の処理とビューを呼び出します。
  2. Interceptors
    • 複数の要請に対して共通処理します
    • 印灯、ロギング などです
    • 組み込みのガールを使用するか、開発者が自分で作成します。
  3. Action
    • 要求ごとに個別処理を行います。
  4. Result
    • ビュー種類(JSP、Velocity...)や関連送声(JSPファイル経路)などを管理します。
    • ビューを表示する役割をします。
    • アクション処理後、Resultに移動します
  5. Context MAP
    • ビューからアクセスするデータが保存されます。
    • アクション処理で得たmodelとHttpServletRequestのようなサブレット関連オブジェクトが保存されます。
  6. OGNL
    • Context Mapの中のデータからアクセスするときに使うような言語です
    • JSPが支援するELと同じです。
    • データアクセスまたは四則演算、比較演算が可能です。
  7. Struts-Tags
    • ビューに記述をタグ付けします。
    • HTMLを効率的にレンダリングします。

Discussion