type="diapatcher Redirect RedirectAction"配置文件struts.xml

本文详细介绍了Struts2框架中dispatcher、redirect和redirectAction三种结果类型的区别与应用,包括它们的工作原理、配置方式以及如何在实际开发中选择合适的类型以实现高效的数据跳转。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[b][align=center][size=x-large][color=red]type="diapatcher Redirect RedirectAction"配置文件struts.xml[/color][/size][/align][/b]

[size=medium][color=red][b]一、struts2默认为Dispatcher服务器跳转[/b][/color][/size]
[size=medium]Dispatcher结果类型的实现是org.apache.struts2.dispatcher.ServletDispatcherResult,该类的二个属性(property):location和parse,这两个属性可以通过struts.xml配置文件中的result元素的param子元素来设置。param元素的name属性指定结果类型实现类的属性名,param元素的内容是属性的值。例如:
<result name=“success” type=“dispatcher”>
<param name=“location” >/success.jsp</param>
<param name=“parse” >true</param>
</result>
其中location参数用于指定action执行完毕后要转向的目标资源,parse属性是一个布尔类
型的值,如果为true,则解析location参数中的OGNL表达式;如果为false,则不解析。
parse属性的默认值就是true[/size].


<action name=“viewNews” class=“com.ibm.ViewNewsAction”>
<result name=“success” type=“[color=red]dispatcher[/color]”>[color=red]viewNews.jsp?id=${id}</[/color]result>
</action>


[size=medium][color=red][b]二、redirect[/b][/color][/size]
org.apache.struts2.dispatcher.ServletRedirectResult.在使用redirect
用户要完成一次与服务器之间的交互,浏览器需要完成两次请求

<result name=“success” type=“[color=red]redirect[/color]”>[color=red]viewNews.jsp?id=${id}[/color]</result>


①浏览器发出一个请求,struts2框架调用对应的Action实例对请求进行处理;
②Action返回”success”结果码,框架根据这个结果码选择对应的结果类型,在上
图是redirect结果类型;
③ServletRedirectResult在内部使用HttpServletResponse的sendRedirect方法将
请求重定向到目标资源;
④浏览器重新发起一个针对目标资源的新的请求;
⑤目标资源作用为响应呈现给用户。


[size=medium][color=red][b]三、redirectAction[/b][/color][/size]
redirectAction结果类型的实现类是org.apache.struts2.dispatcher.ServletActionRedirectResult,该类是
ServletDispatcherResult的子类,因此我们也就可以判断出redirectAction结
果类型和redirect结果类型的后台工作原理是一样的,即都是利用HttpServletResponse的sendRedirect方法将请求重定向到指定的URL。

<result name=“success” type=“[color=red]redirectAction[/color]”>[color=red]viewDishsDetail.action?id=${dish.id}</[/color]result>


那么redirect与redirectAction有什么区别呢?
从结果类型的名字上,我们可以大致判断出redirectAction结果类型主要是用
于重定向到action。也就是说,在请求处理完成后,如果你需要重定向到另一
个action,那么建议你使用redirectAction结果类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值