日期:2014-05-19  浏览次数:20582 次

有关struts2中的result配置,参数传递
今日在看struts中碰到这样一个配置
在我看的某位老师的视频中,他的配置是
<result name = "success" type = "redirectAction">
  <param name = "actionName">test1</param>
</result>

然后:
<action name = "test1" class = "cn.xo.org.action.Test1Action">
  <result name = "success">/test1Suc.jsp</result>
</action>

他在testaction中 设置了一个参数变量name=“aaa”;

最后他在jsp页面里使用struts2的标签,将name的值显示出来了。
但是我做的实验中,也是这样配置,为什么我的jsp页面里就不能显示出name的值。

我配置成了chain就可以取到name的值。

请各位高手帮忙指点一下,这其中的原理是怎样的?

------解决方案--------------------
1:JSP页面 触发配置信息2

2:<action name = "test1" class = "cn.xo.org.action.Test1Action" method="A">
<result name = "success" type = "redirectAction">
<param name = "actionName">test1</param>
</result>
</action>

3:进入Test1Action类 A方法 
如果返回success 则重定向 到配置4
4:<action name = "test1" class = "cn.xo.org.action.Test1Action">
<result name = "success">/test1Suc.jsp</result>
</action>
5:进入Test1Action的 默认执行方法 不是INIT 就是EXCUTE 好像
然后 如果返回success 则跳转到test1Suc.jsp页面

如果他在A方法里面设置了这个变量的值name=“aaa”;
 那么 进入第5步时是不会显示的

------解决方案--------------------
<param name = "actionName">test1.action?name=${name}</param>
 你用<s:debug/>标签看 页面中有没有name这个值。