Struts2数据操作(第二例)

在action中对数据进行操作

1:结果页面的配置

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

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

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

(1)全局结果页面

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

(2)局部结果页面

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

(3)result标签 的type属性

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

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

2》type属性值

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

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

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

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

-redirectAction:重定向到action

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

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

getParameter,getParamterMap

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

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

(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方法(把set和get方法写出来)

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

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

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

实现步骤:

(1)action实现接口 ModelDriven

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

-把我们创建的对象返回

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

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

3.表达式封装(会用)

1实现过程

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

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

第二步:生成实体类变量的set和get方法

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

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

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

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

2.不同点

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

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

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

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

(1)封装到list集合

第一步 在action声明list

第二步 生成list变量的get和 set方法

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

(2)封装到map中

声明一个map集合

生成get和set方法

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

时间: 2024-11-02 13:16:28

Struts2数据操作(第二例)的相关文章

数据库表的创建、管理和数据操作(实验一),数据库创建

数据库表的创建.管理和数据操作(实验一),数据库创建 今天我们就以实验的形式对表的创建.管理和数据操作进行学习,上课吧. [实验目的]:了解SQL语言的使用,进一步理解关系运算,巩固数据库的基础知识.[实验要求]:利用SQL语言进行数据库表的各种操作:1.数据库表的创建.修改和删除操作.2.向表中进行数据的插入.删除和修改操作.[实验内容]1. 利用数据定义语句在实验一创建的stu_DB库中建立学生管理系统的三个表:Student.Course.SC.2.利用INSERT.UPDATE和DELE

python 爬虫第二例--百度贴吧

python 第二例,爬取百度贴吧的帖子,获取帖子的标题,内容,所在楼层,发布时间 其中存在一个问题,当该帖子是手机端发布的帖子,此时在页面中会有标识,因此多一个span标签,与楼层和发布时间的标签一样 解决方法: 目潜想到的解决方法是通过判断爬到的值来进行选择,但解决方案效率肯定低,因此未使用,等知识体系丰富后再进行改进 附爬取的代码: # -*- coding: utf-8 -*- import urllib2 import urllib import re class Tool: # 去除

oracle-2-sql数据操作和查询

主要内容: >oracle 数据类型 >sql建表和约束 >sql对数九的增删改 >sql查询 >oracle伪例 1.oracle的数据类型 oracle数据库的核心是表,表中常见的数据类型有: char(length):存储固定长度的字符串,length默认1,最长2000 varchar2(length):存储可变长度的字符串,length默认长度是1,最大4000 number(p,s)存储浮点数或者是整数,p表示的是最大位数(包含小数点),p默认是38,s表示小数位

Cocos数据篇[3.4](3) ——XML数据操作

[唠叨] XML 即 可扩展标记语言,在游戏开发中,常用于保存游戏数据信息,如最高分.游戏等级等信息,和描述一些资源等. 加载动画的plist文件.瓦片地图编辑器到处的地图格式tmx文件,实际上都是特定格式的xml文件. 另外 UserDefault 单例类保存的数据,也是存储在xml文件中的. Cocos2d-x 已经加入了 tinyxml2库 用于xml的解析.3.x版本位于external/tinyxml2下. 本节要介绍的就是:如何使用 tinyxml2库 来操作处理xml文件. [参考

HBase1.0.0源码分析之请求处理流程分析以Put操作为例(二)

HBase1.0.0源码分析之请求处理流程分析以Put操作为例(二) 1.通过mutate(put)操作,将单个put操作添加到缓冲操作中,这些缓冲操作其实就是Put的父类的一个List的集合.如下: private List<Row> writeAsyncBuffer = new LinkedList<>(); writeAsyncBuffer.add(m); 当writeAsyncBuffer满了之后或者是人为的调用backgroundFlushCommits操作促使缓冲池中的

数据操作的封装--sqlhelper

为了提高软件的灵活性和可维护性,软件的代码需要科学的管理,我们引入了架构这个词.设计模式提醒我们,软件中重复性的代码需要封装起来.最近在做收费系统时,需要和数据库进行频繁的联系,既然是重复的使用,就需要封装,这里使用到了sql helper . 先来看看百度对sqohelper的解释:一个基于.NETFframework的数据库操作组件.虽然不知道组件的具体含义,还是可以猜出来它就是D层中对数据库操作进行封装的工具. 数据库的操作,不外乎四种模式,增.删.改.查,根据返回值来区分,可以分为有返回

hive数据操作

mdl是数据操作类的语言,包括向数据表加载文件,写查询结果等操作 hive有四种导入数据的方式 >从本地加载数据 LOAD DATA LOCAL INPATH './examples/files/kv1.txt' OVERWRITE INTO TABLE [tableName]; >从hdfs上加载数据 load data inpath 'hdfs://192.168.177.124:9000/opt/hive/warehouse/student.txt' >从其他表中查出数据并加载到其

python操作MySQL--实例

有一段时间,没更新,但这都不是自己懒惰的借口,希望自己能坚持下去: python可以操作MySQL 数据库,需要安装的是MySQL-python,并且实现读入excel表及生成excel 表,则需要xlrd及xlwt这两个python 模块: 1.安装MySQL-python: yum -y install MySQL-python    #########在python 程序导入模块时名字为MySQLdb 2.安装excel两个模块: pip install xlrd xlwt   ####p

Cocos2d-x 系列六之数据操作

一.定时器  在cocos2d-x中, 类似定时器的操作,不需要额外的写Timer,实际上,在Node元素中,已经添加了定时执行的功能: 先来看看在Node中的定义 // ... bool Node::isScheduled(SEL_SCHEDULE selector) { return _scheduler->isScheduled(selector, this); } void Node::scheduleUpdate() { scheduleUpdateWithPriority(0); }