| |
プラグインというとEclipseの同名の仕組みが有名ですが、このページでは無関係です。
Strutsにはプラグイン(PlugIn)という仕組みがあり、
ServletContextやActionServletに追加の設定情報を持たせるのに使います。
同様の目的には、サーブレットのリスナー(Listener)機構を使うこともでき、
どちらがよいというわけではないと思いますが、
Strutsの動作に依存するものであれば、プラグインを使う方が分かりやすいのかと思います。
独自のプラグインを作成するには、org.apache.struts.action.PlugIn
インターフェースを実装したクラスを1個作るだけです。
PlugInインターフェースでは、init、destroyの2つのメソッドが定義されているので、
それらを実装します。
package shiten.struts;
import javax.servlet.ServletException;
import org.apache.struts.action.ActionServlet;
import org.apache.struts.action.PlugIn;
import org.apache.struts.config.ModuleConfig;
public class TestPlugIn implements PlugIn {
private String encoding = null;
public void setEncoding(String encoding){
this.encoding = encoding;
}
public String getEncoding(){
return encoding;
}
public void init(ActionServlet servlet, ModuleConfig config) throws ServletException {
System.out.println("TestPlugIn is initialized. encoding=" + encoding);
//ServletContext context = servlet.getServletContext();
//context.setAttribute("encoding", encoding);
}
public void destroy() {
System.out.println("TestPlugIn is destroyed. encoding=" + encoding);
}
}
|
ちなみにencodingというのは仮のプロパティ名です。
一般のアプリケーションでありがちな名前なので、仮に使ってみただけで、
プラグインの動作に何か関係があるというわけではありません。
<plug-in className="shiten.struts.TestPlugIn">
<set-property property="encoding" value="default2" />
</plug-in>
|
struts-config.xmlには上のように書きます。
property=で指定するプロパティ名が、
PlugIn実装クラスのアクセサ・メソッドに対応します。
つまり、property=属性の値が "encoding" だと、
PlugIn実装クラスの初期化時に "setEncoding" メソッドがコールされます。

(first uploaded 2004/06/05 last updated (not ever), URANO398)
|