17. その他の Action クラス
org.apache.struts.actions パッケージ
これまで Action クラスは org.apache.struts.action.Action クラスを継承して実装してきましたが、Struts ではよく使用する機能を備えた Action クラスがあらかじめ org.apache.struts.actions パッケージに用意されています。これらのクラスにはそのまま使えるものもあれば、当該クラスを継承して実装しなければいけないものもあります。この章では Struts が提供するこれらの Action クラスについて説明します。
17.1. org.apache.struts.actions.ForwardAction, org.apache.struts.actions.IncludeAction
Action クラスでビジネスロジックを実行する必要がなく、単に JSP ページに転送するだけの場合や、既存の Servlet をインクルードしたい場合があります。このような場合に便利なのが ForwardAction と IncludeAction です。名前から想像できるかと思いますが、指定されたリソースに転送を行うのが ForwardAction、指定されたりソースをインクルードするのが IncludeAction です。これら 2つの Action クラスを使用するのは簡単で Struts 設定ファイルに設定を行うだけですぐに使用することができます。以下に使用例を示します。
<action path="/index"
type="org.apache.struts.actions.ForwardAction"
parameter="/WEB-INF/jsp/index.jsp"/>
転送を行う場合は、type 属性に ForwardAction を完全限定名で指定し、parameter 属性に転送先のリソースを Web アプリケーションからの絶対パスで指定します。インクルードを行う場合も同様で、type 属性に IncludeAction を完全限定名で指定し、parameter 属性にインクルードするリソースを Web アプリケーションからの絶対パスで指定します。
実習課題 1
メッセージリソースを用いて任意の文字列を表示する JSP ページを用意し、以下のことを確かめなさい。
- URL に直接 JSP ページを指定するとどうなるか。
- ForwardAction を介して JSP ページを表示するとどうなるか。
確認する際には以下の要件を満たすように行うこと。
- web.xml で ActionServlet を設定している servlet 要素に load-on-startup 要素を設定している場合はコメントアウトしてから行うこと。
- Web アプリケーションを再起動し、いろいろな順で表示するようにすること。