Struts-2-struts-tiles
Struts 2とタイルの統合
この章では、TilesフレームワークをStruts2と統合する手順を説明します。 Apache Tilesは、Webアプリケーションユーザーインターフェイスの開発を簡素化するために構築されたテンプレートフレームワークです。
まず、https://tiles.apache.org/[Apache Tiles] Webサイトからタイルjarファイルをダウンロードする必要があります。 次のjarファイルをプロジェクトのクラスパスに追加する必要があります。
- tiles-api-x.y.z.jar
- tiles-compat-x.y.z.jar
- tiles-core-x.y.z.jar
- tiles-jsp-x.y.z.jar
- tiles-servlet-x.y.z.jar
上記に加えて、 WEB-INF/lib のstruts2ダウンロードから次のjarファイルをコピーする必要があります。
- commons-beanutils-x.y.zjar
- commons-digester-x.y.jar
- struts2-tiles-plugin-x.y.z.jar
次に、以下に示すように、Struts-Tiles統合用の web.xml をセットアップしましょう。 ここで注意すべき2つの重要なポイントがあります。 最初に、タイル構成ファイル tiles.xml の場所をタイルに指示する必要があります。 この例では、 /WEB-INF フォルダーの下にあります。 次に、Struts2ダウンロードに付属するTilesリスナーを初期化する必要があります。
次に、/WEB-INFフォルダーに tiles.xml を作成し、次の内容を含めます-
次に、 baseLayout.jsp で基本的なスケルトンレイアウトを定義します。 5つの再利用可能/オーバーライド可能な領域があります。 つまり、 title、banner、menu、body 、および footer です。 baseLayoutのデフォルト値を提供してから、デフォルトレイアウトから拡張する2つのカスタマイズを作成します。 tigerレイアウトは、基本レイアウトに似ていますが、本文として tiger.jsp を使用し、タイトルとしてテキスト「Tiger」を使用する点が異なります。 同様に、ライオンレイアウトは基本レイアウトに似ていますが、本文として lion.jsp を使用し、タイトルとしてテキスト「ライオン」を使用する点が異なります。
個々のjspファイルを見てみましょう。 以下は、 baseLayout.jsp ファイルの内容です-
ここでは、タイル属性を持つ基本的なHTMLページをまとめました。 必要な場所にタイル属性を挿入します。 次に、次の内容を持つ banner.jsp ファイルを作成しましょう-
次に、次を含むアクションクラスファイル MenuAction.java を作成します-
これは非常に単純なクラスです。 結果としてそれぞれtigerとlionを返すtiger()とlion()の2つのメソッドを宣言しました。 すべてを struts.xml ファイルにまとめてみましょう-
上記のファイルで行ったことを確認しましょう。 まず、ビューテクノロジにプレーンjspの代わりにタイルを使用しているため、「タイル」と呼ばれる新しい結果タイプを宣言しました。 Struts2はTiles View結果タイプをサポートしているため、結果タイプ「tiles」を作成して「org.apache.struts2.view.tiles.TilesResult」クラスにします。
次に、リクエストが/tigerMenu.actionに対するものである場合、ユーザーをtigerタイルページに移動し、リクエストが/lionMenu.actionに対するものである場合、ライオンタイルページに移動します。
これを実現するには、少し正規表現を使用します。 アクション定義では、パターン「 *Menu」に一致するものはすべてこのアクションで処理されると言います。 一致するメソッドはMenuActionクラスで呼び出されます。 つまり、tigerMenu.actionはtiger()を呼び出し、lionMenu.actionはlion()を呼び出します。 次に、結果の結果を適切なタイルページにマップする必要があります。
次に、プロジェクト名を右クリックし、[エクスポート]> [WARファイル]* をクリックして、WARファイルを作成します。 次に、このWARをTomcatのwebappsディレクトリにデプロイします。 最後に、Tomcatサーバーを起動して、URL http://localhost:8080/HelloWorldStruts2/tigerMenu.jsp にアクセスしてみます。 これにより、次の画面が生成されます-
同様に、lionMenu.actionページに移動すると、同じタイルレイアウトを使用するライオンページが表示されます。