参考文章:http://7979281.blog.51cto.com/7969281/1308151
方法:
action result的配置中,设置type属性:
dispatcher:转向页面,通常处理JSP,为默认设置
redirect:重定向到一个URL
chain:处理Action链
redirectAction:重定向到一个action
例如:
//home是个action
<action name="login" class="controllers.EnterAction" method="login">
<result name="success" type="chain">home</result>
<result name="error">/login.jsp</result>
</action>
分析:
各个属性值详解如下:
dispatcher:略。
redirect:重定向,底层调用的是response.sendRedirect("...")方法,无法共享请求范围内的数据,新页面无法 显示第一个action中的数据。参数与dispatcher用法相同。一个具体的应用场景是,用户在首页登录 输入密码错误时,可用redirect回到首页,这时用户刚输入的用户名、密码都被清空。
chain:将action的带着原来的状态请求转发到新的action,两个action共享一个ActionContext,actionName 指定 转向的新的action的名字,method指定转向哪个方法,namespace指定新的action的名称空 间,不写表示与原action在相同的名称空间。
redirectAction:重定向到另一个action,参数与chain用法相同,无另外配置时原action数据不带入新action。 允许将原action中的指定属性指定新名称带入新action中,可以在result标签中添加<param name=”b”>${a}</param>,这表示原action中的变量a的值被转给b,下一个action可以在值栈中 使用b来操作,注意如果值是中文,需要做一些编码处理,因为Tomcat默认不支持URL直接传递中。