更改多模块Maven Web项目的struts.xml文件名

时间:2013-09-23 09:07:35

标签: java jsp struts2 struts-config action-mapping

我有一个包含多个模块的Maven项目。在四个模块中,其中两个是Web模块。

这是结构。

MyProject
   |
   |__ api
   |
   |__ commons
   |
   |__ web_child
   |
   |__ web_main

web_main模块是主要模块,它也可以包含web_child模块。

web_child模块结构是

 web_child
     |
     |__ src/main/java //java action classes and all
     |__ src/main/resources
     |    |__ struts-config.xml
     |
     |__ WEB-INF
          |__ JSP Pages

web_main模块结构是

 web_main
     |
     |__ src/main/java //java action classes and all
     |__ src/main/resources
     |    |__ struts.xml
     |
     |__ WEB-INF
          |__ JSP Pages

两个模块都是war

web-main取决于所有模块,web-child取决于前两个(API& commons)模块。

web-main的{​​{1}}中,我正在为pom.xml添加依赖项,它会自动添加其他两个广告。

主模块web-child在服务器上运行良好。

但是当我尝试单独运行web-main模块时,它显示的错误如

web-child

因为没有采用There is no Action mapped for namespace [/] and action name [childMenu] associated with context path ...

当我将文件重命名为struts-config.xml时,struts.xml工作正常。但那个时候主模块没有运行。

所以我想将子模块中的web-child重命名为struts.xml,我需要明确指定它。

我正在使用Struts2。但是我在struts-config.xml中尝试了以下内容,显然它不起作用

web.xml

如何解决这个问题?

更新1

嗨,我在web-child web.xml中添加了以下内容

<servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
        <param-name>config</param-name>
        <param-value>../resources/struts-config.xml</param-value>
    </init-param>
  </servlet>

我正在追踪异常。我是否需要添加任何依赖项?

<filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    <init-param>
        <param-name>config</param-name>
        <param-value>struts-config.xml</param-value>
    </init-param>
</filter>

1 个答案:

答案 0 :(得分:4)

在struts过滤器初始化参数中明确指定配置文件。

<filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    <init-param>
        <param-name>config</param-name>
        <param-value>struts.xml,struts-config.xml,struts-default.xml,struts-plugin.xml</param-value>
    </init-param>
</filter>