struts2页面跳转的方式

struts2页面跳转的方式

①转发


②重定向   转发到自己的action type变为chain

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

③转发自己的action

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

④不跳转 接受Ajax请求

    1)适用原生的servletAPI

   ActionContext在strus2中  我们把他叫做数据中心

           Request                  原生对象

           Response                 原生对象

           Session                    原生对象

           session Context        原生对象 


             Request                  域           Map  struts2不建议使用,如果要用就用ActionContext对象

               Session                   域          Map

                sessionContext       域           Map           Application

                Attr                        域             Map


    actionContext生命周期:

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

                 每次请求到来action Content都会重新创建。

               所以他解决了线程安全,使用ServeltApi响应请求


                 首先获得response对象(两种方法)然后回到原生态servelt响应中

                Action方法中的返回值必须是NONE(如果设置为none那么在strits.xml重就不用写了)

          2)Stream

               ①在Action类中创建一个InputStream对象

                ②给这个对象添加一个get方法

                ③strtus.xml中的result中的标签中设置type = stream

                 ④Action最总可以将json字符串转化为inputStream


  3)使用json插件

      ①导包

   

      ②建立一个action类

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

       生成get set 方法

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

      ③配置struts.xml文件

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

       action不变

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

                 

1. 属性驱动

原因:struts2是线程安全

   action类中直接定义属性名 然后设置get set 方法

   在访问的地方传入对应的属性名和值,struts2自动接受

2. 对象驱动

定义一个bean类 在Action

定义一个对象 并且加上get set 方法

并且再去请求的地方 请求参数键值有规定,必须按照规定的对象名 属性名传递

3. 模版驱动

实现ModuleDriver<user>接口

重写方法

action 中创建一个user对象,并且要new对象

请求的地方还是按照对象属性传递


猜你喜欢

转载自blog.csdn.net/qq_41961660/article/details/80834232
今日推荐