検索
連載

Strutsのプラグインを作るJavaTips 〜Apache/Jakarta編

Share
Tweet
LINE
Hatena

 Struts 1.1から提供されるようになったプラグイン機能を利用することで、Struts本体に手を加えずに独自の機能を簡単に追加できます。Strutsの機能で有名なValidatorやTilesなども、プラグインを利用しています。本稿では、このプラグインを自分の手で作成する方法を紹介します(本稿では、独自に作成するプラグインをカスタムプラグインと呼ぶことにします)。

開発手順

(1)PlugInクラスを実装する

 カスタムプラグインを作成するにはorg.apache.struts.action.PlugInインターフェイスを実装したクラスを作成する必要があります。

SamplePlugIn.java

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***


 PlugInインターフェイスには、アプリケーションの起動時に実行されるinitメソッドと停止時に実行されるdestroyメソッドが定義されています。initメソッドではパラメータのActionServletやModuleConfigを活用することが可能です。このサンプルでは、起動時のinitメソッドにstruts-config.xmlに設定されているプロパティの値を読み込み、ServletContextに保存しています。

(2)PlugInを定義する

 作成したPlugInクラスを組み込むには、struts-config.xmlに定義をする必要があります。

参考:PlugInは複数定義することができ、実行される順番もstruts-config.xmlに定義した順番になります。

struts-config.xml

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***


 PlugInインターフェイスを実装したクラスはplug-inタグのclassName属性にフルパスで設定します。アプリケーションから使用したい値があればset-property属性を使用します。このサンプルではコンテキストに保存する「Hello StrutsPlugIn!!」というメッセージを設定しています。

(3)PlugInを実行する

 PlugInはアプリケーションサーバの起動時と停止時に実行されますので、Tomcatを起動してみます。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***


 上記のようにTomcatの起動メッセージに「-->message = Hello StrutsPlugIn!!」「-->SamplePlugIn Init...」が表示され、SamplePlugInのinitメソッドに記述した処理が動作していることが確認できます。実際に保存された値を取得したい場合は、index.jsp等に、

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***


という1行を追加すれば、「Hello StrutsPlugIn!!」というメッセージがWebブラウザに表示され、PlugInのinitメソッドで設定した値が正しく取得できていることが確認できます。

 今回のサンプルでは単純にstruts-configのプロパティを取得するだけでしたが、アプリケーション実装時には、共通利用されるデータを読み込んだり、1回だけ実行したい処理を行ったりといったアプリケーションの初期化処理に活用することができます。

Profile

WINGSプロジェクト

青木淳夫・奥山学


Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る