使用Struts2,我们必须在类路径中使用struts.xml
,因此它不再适用于WEB-INF。因此我部署项目的方式是将其粘贴在WEB-INF/classes
下,并将其包括../struts2.xml
2个问题:
struts.xml
Struts2 Eclipse开发人员如何做到这一点?
答案 0 :(得分:13)
您可以将struts.xml放在源目录的根目录下,也可以设置其他资源源目录并将其放在那里。 Eclipse在编译时非常高兴地将它复制到WEB-INF / classes。
答案 1 :(得分:2)
我迟到了,我们可以在web应用程序的类路径中的任何目录中配置struts.xml,但是使用web.xml中过滤器配置的“config”init参数提供位置,如下所示,如果我的struts.xml文件位于“/ com / resources /”目录中。
<filter>
<filter-name>action</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
<init-param>
<param-name>config</param-name>
<param-value>struts-default.xml,struts-plugin.xml,/com/resources/struts.xml</param-value>
</init-param>
</filter>
如果我们不提供配置初始化参数struts2默认需要3个值“struts-default.xml,struts-plugin.xml,struts.xml”,你可以在下面看到struts2 Dispatcher类代码,它们将配置这些3个文件到配置管理器。
String configPaths = (String)this.initParams.get("config");
if (configPaths == null) {
configPaths = "struts-default.xml,struts-plugin.xml,struts.xml";
}
String[] files = configPaths.split("\\s*[,]\\s*");
for (String file : files)
if (file.endsWith(".xml")) {
if ("xwork.xml".equals(file))
this.configurationManager.addContainerProvider(createXmlConfigurationProvider(file, false));
else
this.configurationManager.addContainerProvider(createStrutsXmlConfigurationProvider(file, false, this.servletContext));
}
答案 2 :(得分:1)
我没有使用Eclipse,所以这个答案并不是特定于你的要求,但我使用Maven,因此我们拥有应用程序所需的所有“资源”,这些资源位于名为“resources”的单独文件夹中,并且构建应用程序时这些文件会自动复制到适当的位置。在Netbeans中,文件夹中的文件是可用的,我知道有人使用类似设置的eclipse。
我应该指出,我们的项目是从appfuse开始的,因此大部分配置都是预制的。你可以看看它是如何在那里完成的。
答案 3 :(得分:0)
在struts 2项目中,struts.xml文件与sql(Java Resources)文件夹一起添加了包和库。
请参考下面的图片。
如果您想了解有关struts 2项目结构的更多信息,请访问this link
注意:在eclipse中,不允许直接在src文件夹中粘贴文件。因此,您需要先将其粘贴到项目中的任何其他位置(例如,在“WebContent”文件夹中),然后使用移动功能将其放在正确的位置(即'src'文件夹)。
答案 4 :(得分:0)
您可以将struts.xml文件放在src(Java Resources)包中。 当编译过程struts.xml文件将在ROOT / WEB-INF / classes目录中生成。
如果再次出现相同的错误,请再次检查struts操作。 检查应用程序的已部署路径,您可以找到所需内容。 (struts.xml文件)
答案 5 :(得分:0)
使用Struts 1.2,需要将struts-config.xml放在类路径中(在WEB-INF文件夹下),但是对于Struts 2.0,它必须位于src / main / resources文件夹中。
请参阅此处的文档Struts 2 Documentation
我在这个目录中粘贴了struts.xml,项目执行正常。