Struts2 result type="chain" 问题
struts.xml中 import了多个xml文件。
其中一个xml文件的内容是这样的
/项目名称/strutscofingxml/res/resource.xml
XML code
<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&type=0
--></result>
</action>
另外一个xml文件内容是这样的
/项目名称/strutsconfigxml/aaaa/res.xml
XML code
<action name="chlResource" class="chlResourcesAction" method="execute">
<result name="success">
/myleyuan/manager/Management_Add_Goods.jsp
</result>
[color=#FF9900] <result name="input">
/myleyuan/manager/Management_Add_Goods.jsp
</result>[/color]
</action>
这两个xml文件不再同一个目录中, 从一个xml引用另一个xml的action 使用chain连接是我这样写的吗?
为什么没有进入chlResource 里面的方法执行呢? 而是直接找了input而已!?? 希望大家能帮我出出主意!!
------解决方案--------------------<result name="input" type="redirect">XXX!chlResource.action</result>
这样试试
------解决方案--------------------
LZ,想执行chlResource请求的execute方法吗?
如果是的话,是想通过shopContent请求的
<result name="input" type="chain">还是<result name="success" type="chain">执行。
按照楼主的配置,最终会执行到/myleyuan/manager/Management_Add_Goods.jsp
------解决方案--------------------没有办法,只能直接找到input。
------解决方案--------------------想执行execute,必须在chlResource请求中的input中的type="chain"。
注:
LZ的配置只能走input,不走execute方法,是struts2框架自己处理的。如果想走execute方法,在第二个请求中的input中在chain。
------解决方案--------------------出错了,struts2会直接找jsp页面来显示吧。
------解决方案--------------------学习...
------解决方案--------------------
你说的是不是这个意思:加入:
<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>
这种方式试试!不知道你说的是不是这个意思!
------解决方案--------------------不好意思,这块的改改
<param name="actionName">../a/A</param>