デバッグ用のインターセプタ
Struts 2での開発を手助けしてくれるインターセプタです。現在4種類提供されています。いずれも開発モードで実行する必要があります。開発モードとは、詳細なログを出力する機能や設定ファイルを動的にリロードさせるモードのことです。頻繁に内容を変更する開発時には必須となります。設定方法は、設定ファイルであるstruts.xmlに次の1行を追加します。
<constant name="struts.devMode" value="true" />
(1) DebuggingInterceptor
Struts 2内部の設定や、各種パラメータやオブジェクトを格納するValueStackと呼ばれる領域の内容を出力するためのインターセプタです。開発モードを有効にし、リクエストパラメータにdebug=[デバッグ出力タイプ]を指定することで利用できます。基本的にブラウザ上でXMLデータを扱うものがありますので、XMLパーサが搭載されているInternet Explorerでの稼動が前提になっています。
デバッグ出力タイプには次のものが選択できます。
| 設定値 | 説明 |
| xml | リクエストパラメータ、コンテキスト属性、セッション属性、ValueStackの内容をXML形式でレスポンスします |
| browser | コンテキスト属性一覧をブラウザで表示し、その属性ごとに持っているツリー構造のデータを表示します |
| console | レスポンス結果をさらに個別で出力できるコンソールをポップアップで出力します。コンソール画面は次に示すcommandを起動します |
| command | consoleによって呼び出されるコマンドで、単体では使いません |
今回はxmlとbrowserモードでの結果を紹介します。まずはxmlモードでの出力結果です。
参照できる値一覧がXML形式で表示されます。ツリーの展開、折りたたみができます。
次にbrowserモードです。xmlモードよりも詳細に出力されます。
参照できる値一覧が表形式で表示されます。さらに参照したい内容を「Expand」で開きます。試しに上から3行目のlocaleを開いてみましょう。
扱うロケール情報が表示されます。
では残りのconsoleとcommandモードの挙動を見ます。この2つのモードはレスポンスした結果からさらに詳細を表示しますので、起動前に一度レスポンスを出力しておく必要があります。このコンソール画面で、表示したい内容を打ち込みます。入力する値はデバッグモードのbrowserで出力された値になります。では試しに1つ表示してみましょう。
デバッグモードについては、出力したい内容やその量に応じて使い分けると良いでしょう。実際にデバッグで使う場合には、パラメータ情報やセッション情報を頻繁に参照するかと思います。従来の開発では、直接ソースにてログに出力する場合や、開発ツールの機能を使ってデバッグをすることもできますが、アプリケーションを結合した後の試験などでは中々試験できないケースもあります。もし想定外の動作をしていると思った場合にはこのデバッグモードを起動し、実際に出力確認をされることで、実装ミスや設定ミスなどの誤動作も検出することができるでしょう。




