Struts2页面跳转的方式


1. 转发
2. 重定向

<action name="helloAction" class="cn.hd.hello.HelloAction" method="hello">
    <!--resul
        name:对应的是action类中的 method的返回值名字可以
              随便写,只要和action类中的返回值结果一样就可以,
              但是一般情况下使用特定
        type:dispatcher 转发
              redirect  重定向
        标签中间的值:跳转页面的地址

    -->
    <result name="success">/hello.html</result>
</action>


3. 转发到自己的Action

<result name="success" type="chain">
    <!--跳转到下一个action的action的名字-->
    <param name="actionName">targetAction</param>
    <!--跳转到下一个action的命名空间-->
    <param name="namespace">/</param>
</result>

4. 重定向到自己的Action type变为redirectAction

<result name="success" type="redirectAction">
    <param name="actionName">targetAction_login</param>
    <param name="namespace">/</param>
</result>


5. 不跳转接收ajax请求

(1) 使用原生的servlet Api

ActionContextstruts2中,我们把它叫做数据中心。

Requset 原生对象

Response 原生对象

Session 原生对象

ServletContext 原生对象

 

Requset     域 Map Struts2不建议使用,如果要用就用ActionContext对象

Session     域 Map

ServletContext Application   Map

Attr      域 Map

 

 

ActionContext生命周期:

    所有的servlet对象都存了,他的生命周期是随着其中最短的人而创建和销毁。他就是request对象

    每次请求到来,ActionContext都会重新创建

               所以他解决了线程安全问题

使用ServletApi相应 ajax请求

1. 首先获得response对象(2种方法)然后回到原生态servlet相应中

2. action 中的方法的返回值必须是NONE(如果设置为none那么在struts.xml中就不用书写result标签了)

(2) Stream

1. Action类中 创建一个InputStream对象

2. 给这个对象增加一个get方法

3. struts.xml中的result标签中设置 type=stream

4. Action最终可以将json字符串转化为inputStream

 

(3) 使用json插件

 

1. 导包

 

2. 建立一个ajax

    定义你想要返回的json的键名

    生成getset方法

    然后在Action访问的方法中为这个json键名的对象进行赋值

3. 设置struts.xml文件

    重新建package extends 继承不能写struts-default要写jaon-default(在struts-json-plugin包中)

        Action不变

                result name 属性不变 type属性变为json(在struts-json-plugin包中struts-plugin.xml中)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值