struts.xml中 import了多个xml文件。其中一个xml文件的内容是这样的
/项目名称/strutscofingxml/res/resource.xml
<action name="shopContent" class="shopContentAction" method="addProduct">
   <result name="input" type="chain">
<param name="actionName">chlResource</param>
<param name="namespace">/res</param><!--
/res/chlResource.action?strshopMainId=1&amp;type=0
--></result>
</action>另外一个xml文件内容是这样的
/项目名称/strutsconfigxml/aaaa/res.xml
<action name="chlResource" class="chlResourcesAction" method="execute">
<result name="success">
/myleyuan/manager/Management_Add_Goods.jsp
</result>
<result name="input">
/myleyuan/manager/Management_Add_Goods.jsp
</result>

</action>这两个xml文件不再同一个目录中, 从一个xml引用另一个xml的action 使用chain连接是我这样写的吗?
为什么没有进入chlResource 里面的方法执行呢? 而是直接找了input而已!?? 希望大家能帮我出出主意!!

解决方案 »

  1.   

    <result name="input" type="redirect">XXX!chlResource.action</result>
    这样试试
      

  2.   

    我必须是chain,因为需要引用前一个action中的filedErrors
      

  3.   

    LZ,想执行chlResource请求的execute方法吗?如果是的话,是想通过shopContent请求的
    <result name="input" type="chain">还是<result name="success" type="chain">执行。
    按照楼主的配置,最终会执行到/myleyuan/manager/Management_Add_Goods.jsp
      

  4.   

    当然是:<result name="input" type="chain"> 因为我说了 需要引用filedErrors
      

  5.   

    没有办法,只能直接找到input。
      

  6.   

    但是问题就是现在<action name="chlResource" class="chlResourcesAction" method="execute">他不进入这个class的execute方法!!!!
      

  7.   

    想执行execute,必须在chlResource请求中的input中的type="chain"。
    注:LZ的配置只能走input,不走execute方法,是struts2框架自己处理的。如果想走execute方法,在第二个请求中的input中在chain。
      

  8.   

    shopContent 中的validateMethod()方法出现了filesErrors, 那么肯定会到input上来,所有我在input的result中就 chain到 chlResource ,难道不需要执行chlResource【spring管理的bean】的类中的execute方法?我的测试程序都是可以运行的,但是到了项目里面就是不走execute方法了。
      

  9.   

    出错了,struts2会直接找jsp页面来显示吧。
      

  10.   

    你说的是不是这个意思:加入:
     <package name="a" extends="struts-default" namespace="/a">
        <action name="A" class=".." method="A">
    <result>/WEB-INF/pages/xxx.jsp</result>

       </action>
    </package>在b命名空间调用a命名空间的方法:
    <package name="b" extends="struts-default" namespace="/b">
        <action name="B" class=".." method="B">
    <result name="success" type="chain">
      <param  name="actionName">../a/B</param>
            <result>
       </action>
    </package>这种方式试试!不知道你说的是不是这个意思!
      

  11.   

    不好意思,这块的改改
    <param name="actionName">../a/A</param>
      

  12.   

    哥们你怎么做的,我现在遇见了这个问题,我想获取filederror的信息。上传文件太大,框架自动就找input,又不执行相应的action