你如何在Struts 2的项目路径?(How do you get the project path

2019-10-16 22:01发布

例如:

<constant name="struts.multipart.saveDir" value="temp" />

将保存到:

\的Apache Tomcat 7.0.14 \ BIN \ TEMP \ upload__781d3178_13831f5e207__8000_00000003.tmp

所以,相反,我怎么让它去:

C:\ MY_PROJECT \编译\网络\ TEMP \

如果不使用绝对路径,因为我不想每次都重新配置的项目移动。 我只想相对路径基本。

编辑1:

我不认为它很重要,但我使用Struts 2版本2.1.8.1

编辑2:

我使用的Apache Tomcat。 这就是我在部署项目。 有没有办法让在struts.xml中到Tomcat的项目部署位置的参考?

就像是:

<constant name="struts.multipart.saveDir" value="..\webapps\project\build\web" />

Answer 1:

有几种方法可以做到这一点。 这里是最简单的方法:

<constant name="struts.multipart.saveDir" value="${catalina.home}/webapps/project/web/temp"/>

你必须设置你的CATALINA_HOME

UPDATE

也许这样,在你的web.xml:

<context-param>
  <param-name>catalina.home</param-name>
  <param-value>path/to/your/tomcat</param-value>
</context-param>

UPDATE

我还发现了一个链接,它是Log4j的,却是一样的。 链接到解决方案



Answer 2:

该项目是在应用程序的来源 ,开发人员工作站上,都是。

在运行时,你得到的是运行的部署战争的服务器。 应用程序的用户他们在工作站上的来源,该目录是无关的应用程序服务器。 它不关心,而不必知道。 有可能是应用程序服务器上这样的目录,但它不知道,这是一个目录作为机器上的所有其他目录。 有没有其他方式比在一些配置文件中指定它。



文章来源: How do you get the project path in Struts 2?