struts 2でファイルの絶対パスを取得する方法

883 ワード

方法1:
 ServletActionContext.getServletContext().getRealPath(File.separator);//      D:\xxx\   

このメソッドはactionの一般的なメソッドで実行すれば問題ありませんが、static初期化に置くとエラーが発生します.
private static String basePath;
static {
	basePath = ServletActionContext.getServletContext().getRealPath(File.separator);

}

具体的にはなぜ研究されなかったのか
方法2:
basePath = ProductStage.class.getClassLoader().getResource("")

得られた文字列は次のようになります.
D:/Java/Tomcat%206.0/webapps/プロジェクト名/WEB-INF/classes
また、パスにスペースが含まれている場合は「%20」と表示されます.
basePath = ProductStage.class.getClassLoader().getResource("")
   .getFile().replaceAll("/WEB-INF/classes/", "").replaceAll("%20", " ").substring(1);