• Struts2数据操作(第二例)


    action中对数据进行操作

    1:结果页面的配置

    1.result标签配置action方法的返回值到不同的路径里面

    2.创建两个action,都执行默认的方法execute方法,让两个action方法都返回success,返回success后配置到同一个页面·

     

    弊端:结果页面都一样,返回值都一样,但是太浪费了,于是我们引入了全局页面

    1)全局结果页面

    如果说多个action,方法里面返回值相同的,到页面也是相同的,这个时候用全局页面

     

    2)局部结果页面

     

    1》即配置了全局页面,有配置了局部页面,以局部页面为准

     

    3)result标签 的type属性

    1result标签里面除了name属性之外,还有一个属性type

    1type属性:如何到路径中去(转发还是重定向)

    2type属性值

    1)默认值,做转发操作,值是dispatcher

     

    2)做重定向操作,值是 redirect

     

    这两个值是针对页面的配置,配置到其他的action里面

    -chain:转发到action,一般不用,缓存问题

    -redirectAction:重定向到action

     

    2:在action获取表单提交数据

    1:之前在web阶段,提交表单到servlet里面,在servlet里面使用request对象里面的方法获取

    getParameter,getParamterMap

    2:提交表单到action,但是action里面没有request对象,不能直接使用request对象

    3action获取表单数据,如下;

    1)使用ActionContext类获取

    因为方法不是静态的,所以要创建ActionContext对象

     

    这个方法对象不是new出来的

     

    具体做个演示

    1)创建表单,提交表单到action里面

    2)在action使用ContextAction获取数据,获得request方法

    2)使用ServletActionContext获取

     

    可以调用类里面的静态方法,

     

    HttpServletRequest request=ServletActionContext.getRequest();

    String username=request.getParameter("username");

    String password=request.getParameter("password");

    String address=request.getParameter("address");

    3)使用接口注入方式获取(一般不用)

    1:让action实现一个借口,得到一个request对象

     

    1:在action操作域对象:request,session,servletcontext:2:

    2:使用ServletActionContext类操作

     

    3:struts提供获取表单数据方式

    使用最原始的方法封装实现类对象

     

    1)属性封装

    直接把表单提交的数据封装到action的属性里面

    实现步骤:

    action成员变量位置定义变量

    -变量名称和表单输入项的name属性值一样,这样就直接通过里面的名字调用里面的set方法,设置值

    生成变量set方法(把setget方法写出来)

     

    3.使用属性封装获取表单数据到属性里面,不能把数据直接封装到实体对象里面,于是我们用到了模型驱动方式

    2)模型驱动封装(重点)

    直接把数据从表单封装到一个实体类中去(如users

    实现步骤:

    1action实现接口 ModelDriven

     

    2)实现接口的方法getModel方法

    -把我们创建的对象返回

     

    3.使用模型驱动和属性封装需要注意的问题

    1)在一个action中,获取表单数据可以属性封装,使用模型驱动封装,不能同时使用属性封装和模型驱动封装获取同一个表单数据,两个都用只会执行模型驱动,

    3.表达式封装(会用)

    1实现过程

    1)使用表达式封装可以把表单数据封装到实体类对象里面

    第一步:在action里面声明实体类

    第二步:生成实体类变量的setget方法

     

    第三步 在表单输入项的name属性值里面写表达式形式

    可以把表达式封装归类到属性封装里面

    比较表达式封装和模型驱动

    1:使用表达式封装和模型封装都可以把数据封装到实体类对象里面

    2.不同点

    1)使用模型驱动只能把数据封装到一个实体类对象里面。在一个action里面不能使用模型驱

    动把数据封装到不同的实体类对象里面

    2)使用表达式可以把数据封装到不同的实体类对象里面

     

    4:struts获取数据封装于集合中(会用)

    1)封装到list集合

    第一步 action声明list

     

    第二步 生成list变量的getset方法

     

    第三步在表单输入项 里面写表达式(第三天会用到s:iterator

     

    2)封装到map中

    声明一个map集合

    生成getset方法

    第三步在表单输入项 里面写表达式

  • 相关阅读:
    UESTC_秋实大哥与家 2015 UESTC Training for Data Structures<Problem E>
    UESTC_秋实大哥与战争 2015 UESTC Training for Data Structures<Problem D>
    UESTC_秋实大哥与快餐店 2015 UESTC Training for Data Structures<Problem C>
    UESTC_秋实大哥与花 2015 UESTC Training for Data Structures<Problem B>
    UESTC_秋实大哥与小朋友 2015 UESTC Training for Data Structures<Problem A>
    UESTC_魔法少女小蟹 CDOJ 710
    UESTC_棋盘游戏 CDOJ 578
    UVA_Rotation Game<旋转游戏> UVA 1343
    VS2010调试窗口一闪而过解决方法
    VS中检测内存泄漏的方法
  • 原文地址:https://www.cnblogs.com/yq12138/p/7202424.html
Copyright © 2020-2023  润新知