redirectAction是重定向到下一个Action,所以在配置struts.xml时,<param>标签存放的是传给下个Action的参数值,此项必须有。
重定向的第二个Action必须写getter,setter方法,否则显示页面得不到数值,说明了Action2的valueStack和Action1的valueStack不一样?而一次请求(存储转发)的valueStack就一样吗?
chain是由服务器转发到下一个Action,struts.xml文件可以没有除<param name="actionName">nextAction</param>之外的参数,两个Action直接通过第一个Action的getter()方法和第二个Action的setter()的方法传递参数,如果第二个Action把传过来的参数值改变了,那么第二个Action必须写出这个传过来参数的getter()方法,否则页面收到的将是第一个Action的getter()方法得到的值。(页面获得参数方法两种:EL语言,Struts2标签)。实现的机理还是valueStack,只要第二个Action不改变valueStack里面的参数值(getter()方法),那么经过存储转发方式,显示页面就可以得到第一个Action中getter()方法设置到valueStack中的参数值。