Seasar2でdiconにアプリ設定を書く

SAStrutsでアプリの設定はどう書く」の続き

<component class="java.io.File" name="tmpDir">
  <arg>"/tmp"</arg>
</component>

ognlでシステムプロパティを取り出せるので、例えばTomcatのcatalina.homeを指定出来る

<component class="java.io.File" name="tmpDir">
  <arg>@java.lang.System@getProperty("catalina.home")</arg>
  <arg>"tmp"</arg>
</component>

以下と同じ

File tmpDir = new File(System.getProperty("catalina.home"), "tmp");

Webアプリケーションのディレクトリを指定

<component class="java.io.File" name="tmpDir">
  <arg>application.getRealPath("WEB-INF/tmp/mailtemplate")</arg>
</component>

以下と同じ

File tmpDir = new File(context.getRealPath("WEB-INF/tmp/mailtemplate"));