0

例如:

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

将保存到:

\Apache Tomcat 7.0.14\bin\temp\upload__781d3178_13831f5e207__8000_00000003.tmp

所以,相反,我该如何让它去:

C:\my_project\build\web\temp\

不使用绝对文件路径,因为我不想在每次项目移动时都重新配置它。我基本上只想要相对路径。

编辑1:

我认为这并不重要,但我使用的是 Struts 2 版本 2.1.8.1

编辑2:

我正在使用 Apache Tomcat。这就是我将项目部署到的地方。有没有办法在struts.xml中引用Tomcat的项目部署位置?

就像是:

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

2 回答 2

0

该项目是开发人员工作站上的应用程序源所在的位置。

在运行时,你所得到的只是一个运行已部署战争的服务器。应用程序的来源以及它们在工作站上的目录与应用服务器无关。它不在乎,也不必知道。应用服务器机器上可能有这样的目录,但是不确定,和机器上所有其他目录一样的目录。除了在某个配置文件中指定它之外别无他法。

于 2012-06-28T10:16:53.010 回答
0

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

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

你必须设置你的CATALINA_HOME

更新

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

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

更新

我还找到了一个链接,它是用于 Log4j 的,但它是一样的。链接到解决方案

于 2012-06-28T11:02:44.060 回答