……
    <init-param>
      <param-name>config/aa/bb</param-name>
      <param-value>/WEB-INF/aa/bb/struts-config.xml</param-value>
    </init-param>
    <init-param>
      <param-name>config/aa/cc</param-name>
      <param-value>/WEB-INF/aa/cc/struts-config.xml</param-value>
    </init-param>
    ……
如上,在web.xml中定义多个struts-config.xml文件当两个配置文件中有相同的path="/open"     我的action="/open.do"   如何才能找到我想要的那个?

解决方案 »

  1.   

    这样不会被覆盖么?  能定义path一样的么?
      

  2.   

    你可以几个起不同的名字 定义的时候像这样就可以了<init-param>
          <param-name>config</param-name>
          <param-value>
                /WEB-INF/struts-config-login.xml,
                /WEB-INF/struts-config-regist.xml,
                /WEB-INF/struts-config-hr.xml,
                /WEB-INF/struts-config-jsjygl.xml,
                /WEB-INF/struts-config-ofxnwp.xml,
                /WEB-INF/struts-config-platformmgr.xml,
                /WEB-INF/struts-config-ofexcel.xml
          </param-value>
        </init-param>
      

  3.   

    一般定义多个配置文件是分模块的。
    通过包来控制的。
    在xml中,只配置一个struts-config.xml就可以了。
    如果想跳转到另一个配置模块,好像是用SwicthAction。
    好久没用了,记不大清楚了。
      

  4.   

    因为目前的项目是这样的在web.xml中如上描述了多个struts-config.xml然后 一个模块的struts-config.xml放在web-inf/aa/bb 中相应的jsp放在webapp/aa/bb中在jsp中的action="/open.do"就是这样写的,也没有指定包,这个相对路径的写法,有些纠缠。
      

  5.   

    我们的项目struts-config文件是放在一块的,只是根据模块每个模块定了一个名字,不过你的情况像这样定义的话应该也是可以的,你可以试试看 我没有遇到过
      

  6.   

    path是唯一标识符,这样是不行的
      

  7.   

    http://127.0.0.1:8080/webXX/aa/bb/open.do
    http://127.0.0.1:8080/webXX/aa/cc/open.do<action path="/open" type="action.OpenAAction">
       <forward name="success" path="/WEB-INF/aa/bb/open.jsp" contextRelative="true" />
    </action><action path="/open" type="action.OpenBAction">
       <forward name="success" path="/WEB-INF/aa/cc/open.jsp" contextRelative="true" />
    </action>