今日在看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.   

    1:JSP页面 触发配置信息22:<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步时是不会显示的
      

  2.   

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

  3.   


    谢谢你了,已经确定了,没有错误,是视频里的错了。
    redirectAction是不能把参数传递过来的,如果要使用就是用el表达式,
    把参数加在url后面就ok了。