プログラム悪戦苦闘日記

はてなダイアリーからの移行(遺物)

Struts Actionの初期化処理

 
を行う場所は、PlugInを使うらしい。
 
 まずは、PlugIn インターフェイスをimplementするクラスを作る。init()が初期化、destoroy()が終了処理になる。

package sample.add;

import javax.servlet.*;
import org.apache.struts.action.*;
import org.apache.struts.config.*;
import java.io.*;

public class AddPlugIn implements PlugIn {
    String path_;

    public void destroy() {
        try {
            FileWriter w = new FileWriter(path_ + "exit.txt");
            w.write("exit...");
            w.close();
        }catch(IOException ex) {
            ex.printStackTrace();
        }
    }

    public void init(ActionServlet arg0, ModuleConfig arg1)
            throws ServletException {
        path_ = arg0.getServletContext().getRealPath("") + "/WEB-INF/classes/resources/";
        
        try {
            FileWriter w = new FileWriter(path_ + "init.txt");
            w.write("init...");
            w.close();
        }catch(IOException ex) {
            ex.printStackTrace();
        }
    }
}

 struts-config.xmlにPlugInクラスを書く

<plug-in className="sample.add.AddPlugIn" />

property属性とかを使ってパラメータを渡すこともできるようだ。
そのときは、PlugInクラスにsetterメソッドを定義しておく必要がある。