关于Struts2中result的几点总结

8 篇文章 0 订阅
 

        朋友们,不好意思,最近许多事情赶一块儿了,没能及时更新博客,还望各位多多包涵~下面接着谈Struts2的内容。今天想跟大家分享的是Struts2中Result的一些学习中遇到的问题。

        reslut标签的作用,我想通过字面意思,大家都能理解:对action的响应结果的处理。它一共有四种常用的类型,下面一一为大家介绍:

        1.dispatcher(默认类型,在服务器端实现跳转)

其写法一般是 : 

       <action name="user" class="com.struts2.user.action.UserAction">
            <result>/user_add_success.jsp</result>
        </action>   

其中,<result> 。。。</result>的写法,隐含了执行方法的返回值为“SUCCESS”,其完整写法应为:<result="SUCCESS"> 。。。</result>。

这种类型的reslut的是在服务器端实现跳转,其后不能再是Action了(若要实现此功能,使用chain类型),只能是某个jsp页面或者html等。

         2.redirect

也就是重定向了。与dispatcher不同的是,redirect实现的是在客户端(浏览器)实现的跳转,因为此时相当于客户端又重新向服务器端发起了一次请求。被跳转的页面中丢失传递的信息。这是因为action的设计模式是基于单线程的,如果要为被跳转的页面传递参数,就只有使用session或者在url地址中传入参数。

        3.chain

可以实现从一个antion到另一个action的跳转。主要用于把相关的几个action连接起来,共同完成一个功能。

43# <action name="step1" class="test.Step1Action">  
44#          <result name="success" type="chain">step2.action</result>  
45# </action>  
46#   
47# <action name="step2" class="test.Step2Action">  
48#          <result name="success">finish.jsp</result>  
49# </action>
50  
512)实现方式:
52  
53查看execute()方法,主要思想如下:
54  
55// 根据Action名称finalActionName及要调用的方法finalMethodName来new一个代理对象proxy,并执行之
56# proxy = actionProxyFactory.createActionProxy(finalNamespace,   
57#                    finalActionName, finalMethodName, extraContext);   
58# proxy.execute();

4.redirect-action

当使用type=“redirectAction” 或type=“redirect”提交到一个action并且需要传递一个参数时。这里是有区别的: 
使用type=“redirectAction”时,结果就只能写Action的配置名,不能带有后缀:“.action”。

因为后边两种在实际的开发过程中应用并不是太广泛,因此知道就可以了,用到的时候再查也不会太晚。

 

好了,今天跟大家分享的就是这些了。洗洗睡了,明天上班。各位,晚安咯~!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

鹏鹏超人

如果觉得不错,请我喝杯茶如何?

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

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

打赏作者

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

抵扣说明:

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

余额充值