【问题标题】:Where to put struts.xmlstruts.xml 放在哪里
【发布时间】:2010-10-26 14:20:31
【问题描述】:

对于 Struts2,我们必须在类路径中包含 struts.xml,因此将其放在 WEB-INF 下不再有效。所以我让我的项目部署的方式是将它放在WEB-INF/classes 下并包含../struts2.xml

2 个问题:

  1. 当我进行重建时,Eclipse 会清除 classes 文件夹,所以它 删除struts.xml
  2. Eclipse 没有在我的项目浏览器中显示类文件夹,所以 首先,它是一个放置配置文件的糟糕地方。

你们的 Struts2 Eclipse 开发人员是如何做到这一点的?

【问题讨论】:

  • !C:\Users\342008\Desktop\strus-structure.jpg

标签: struts2 configure


【解决方案1】:

我没有使用 Eclipse,所以这个答案不是特定于您的要求,但是,我使用 Maven,所以我们在一个名为“resources”的单独文件夹中拥有应用程序所需的所有“资源”,以及何时构建应用程序这些文件会自动复制到适当的位置。在 Netbeans 中,该文件夹中的文件是可用的,我知道有些人使用 eclipse 的设置类似。

我应该指出,我们的项目是从appfuse 开始的,所以这些配置大部分都是预先制作的。你可以看看那里是怎么做的。

【讨论】:

    【解决方案2】:

    您可以将 struts.xml 放在源目录的根目录下,也可以设置一个额外的资源源目录并将其放在那里。 Eclipse 在编译时非常乐意将其复制到 WEB-INF/classes 中。

    【讨论】:

    • 这样做时出现 404 错误!!!!我正在使用tomcat6。你能告诉我为什么会这样吗?
    【解决方案3】:

    在 struts 2 项目中,struts.xml 文件与包和库一起添加到 src(Java Resources) 文件夹中。

    请参考下图。

    如果您想了解更多关于 struts 2 项目结构的信息,请访问this link

    注意:在 Eclipse 中,您不能直接将文件粘贴到 src 文件夹中。所以你需要先将它粘贴到项目中的任何其他位置(例如,在'WebContent'文件夹中),然后使用移动功能将其放置在正确的位置(即'src'文件夹)。

    【讨论】:

    • 我试过这样。但我收到 404 错误。我们可以进行技术交流吗???如果是的话来visruthcv.appspot.com
    【解决方案4】:

    您可以将 struts.xml 文件放在 src(Java 资源) 包中。 编译的时候会在ROOT/WEB-INF/classes目录里面生成struts.xml文件。

    如果您一次又一次地遇到相同的错误,最好检查一下 struts 操作。 检查应用程序的部署路径,您可以找到您想要的。 (struts.xml 文件)

    【讨论】:

      【解决方案5】:

      我迟到了,我们可以在 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>
      

      如果我们不提供配置 init 参数 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));
        }
      

      【讨论】:

        【解决方案6】:

        对于 Struts 1.2,需要将 struts-config.xml 放在类路径中(在 WEB-INF 文件夹下),但对于 Struts 2.0,它需要放在 src/main/resources 文件夹中。

        在此处查看文档Struts 2 Documentation

        我将 struts.xml 粘贴到此目录中,项目执行良好。

        【讨论】:

          猜你喜欢
          • 2013-03-09
          • 2014-03-10
          • 2012-09-22
          • 1970-01-01
          • 1970-01-01
          • 2011-06-29
          • 2011-08-29
          • 2015-02-17
          • 2018-04-21
          相关资源
          最近更新 更多