我有一个包含多个模块的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>
答案 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>