Result

1.Result是什么和它能干什么?

它指示了Action执行完成后下一个页面在哪里。

2.ResultType是什么?

所谓ResultType,就是具体执行Result的类,由他来决定采用哪一种视图技术将执行结果展现给用户。

3.再Struts 2 中,预定义了一些Result的字符串常量:

SUCCESS: 表示Action执行成功显示结果视图给用户,值为字符串常量的小写形式(success)
NONE: 表示Action执行成功,但不显示视图给用户,值同理。
ERROR: Action执行失败,显示错误页面给用户
INPUT: Action需要更多的输入信息,回到input对应的页面
LOGIN:表示因用户没有登录而没有正确执行,将返回该登录视图。

4.一些预定义的Result:

1.dispatcher

它对应的实现类是ServletDispatcherResult。
在它的ResultType的实现中,调用了javax.servlet.RequestDispatcher类中的forward方法,
因此它实现的功能就是页面跳转且通过它的跳转将保存原来页面中request的数据。

对于dispatcher的使用范围,除了可以配置JSP外,还可以配置其他的web资源,比如Sevlet等。
使用dispatcher的ResultType不能访问其他Web应用中的Web资源

完整的配置:平时我们只是把result对应的JSP路径直接作为< result >元素中的文本来配置,这是简化的方法,实际上对于dispatcher还有两个参数可以配置:
在这里插入图片描述
其中parse参数决定了location是否可以通过OGNL来引用参数,默认为true

2.redirect

它也是用来实现跳转到下一个页面的,与上一个不同的是,它的特点是全新的请求,这就意味着本次请求和跳转到下一个页面的请求的对象是不同的,所以其数据是不同的。

使用它的ResultType可以访问其他Web应用中的资源,甚至是任何你想要访问的对象。

其他的和上面差不多。

3.chain
chain是一种特殊的视图结果,用来将Action执行完后链接到另一个Action中继续执行,新的Action使用上一个Action的上下文,数据也会被传递。(实现多层Action处理)

注意:chain不能再result的配置中传递参数。

5.全局Result

有一些Result需要由多个Action共用,这个时候,就可以配置全局Result,让多个Action共享这些全局的Result,而不是每个Action都要配置一个跳转到某一页面的result

例子:
在这里插入图片描述
有了全局Result后我们需要了解在Action运行之后,根据execute方法的返回值寻找Result的顺序:
局部–>全局–>父包,祖父包…的全局Result

6.PreResultListener

在实际开发中,常常需要在Action执行完毕后且Result还没开始的时候做一些功能处理,我们就需要实现PreResultListener类来实现。

例子:
在这里插入图片描述
在这里插入图片描述

7.自定义Result

其实开发自定义Result很简单,只需要实现com.opensysphony.xwork2.Result接口就可以了:
在这里插入图片描述

实例:
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员小牧之

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值