diconに書いたアプリ設定をブラウザで見る

Seasar2でdiconにアプリ設定を書く - nullpo.printStackTrace();」の続き

SAStrutsのアプリケーション設定をdiconに書いたのはいいが、サーバにデプロイしてしまうと、いちいちdiconファイルを開いて確認するのも面倒なのでブラウザ上で確認したい。

dicon(ここではファイル名をconfig.diconとする)に書いた設定をブラウザ上で確認するためのActionを作ってみる。

public class ConfigAction {
    @Binding
    protected HttpServletResponse response;

    @Binding
    protected S2Container s2Container;

    @Execute(validator=false)
    public String index() throws IOException {
        response.setCharacterEncoding("utf-8");
        PrintWriter w = response.getWriter();

        w.print("<html><head><title>Config</title></head><body>");
        w.print("<dl>");
        for (int i = 0; i < this.s2Container.getChildSize(); i++) {
            S2Container container = this.s2Container.getChild(i);
            if (!"config.dicon".equals(container.getPath())) {
                continue;
            }
            for (int j = 0; j < container.getComponentDefSize(); j++) {
                ComponentDef def = container.getComponentDef(j);
                w.print("<dt>" + def.getComponentName() + "</dt><dd>" + def.getComponent() + "<dd>");
            }
        }
        w.print("</dl>");
        w.print("</body></html>");
        return null;
    }
}

言うまでもないが本番環境で誰でもアクセスできる場所に設置すると祭り発生