天天看点

Struts2总结-1Struts2总结-1

Struts2总结-1

注意:该文档中没链接图片,可以下载我资源中同名的word文档

1-1、导包

导包的时候不能把下载的struts2源码中的所以jar都导入,会出问题。源码中有案例,可以使用案例中的jar包

a) struts-2.3.24-all\struts-2.3.24\apps\WEB-INF\lib

1-2、struts.xml的配置

a) 添加约束

b) 配置struts.xml 没有提示 添加 dtd

1-3、标签与属性

struts  

constant 定义常量 name="struts.i18n.encoding" value="UTF-8"

package 属性 name :随便取(当模块配置继承这个配置的时候使用)extends:struts-default namespace:/

action name:在jsp中访问的时候使用, method:调用action中的哪个方法 class:对应的action 全路径

result name:action 方法中的返回值  type : 转发/重定向    以及对象的jsp 或 action

Include  分模块  file="/com/heima/web/action/User.xml"></include>

1-4、action编写方式(三种)

a) 第一种 创建普通类,不继承任何类,不实现任何接口

b) 创建类,实现接口 Action

在Action接口里面有常量

(1)在action的方法里面,如果返回值,必须在action标签写result标签进行配置

如果没有配置返回404页面

(2)action的方法不进行返回,不需要进行配置

c)创建类,继承 ActionSupport类(常用)

1-5、在action标签中配置  访问action类中的方法(三种)

默认是访问excute方法

第一种:

 在action标签,有属性 method,使用method属性进行配置,在method属性值写action里面要执行的方法名称

缺点:

每个方法都需要配置action,如果action里面的方法过多,造成大量配置

第二种:

 使用通配符方式进行配置(重点)

(1)在action标签name属性,name属性值写 符号 * 星号

(2)* 星号匹配任意内容

- 比如add使用星号可以匹配到,访问update使用星号也可以匹配到

第三种 :

使用动态访问(了解)

(1)开启常量

(2)创建action,创建多个方法

(3)配置action,在action标签里面只有name属性和class属性

(4)最终访问时候

1-6、Struts2框架执行流程

2-1、在action获取表单提交数据

使用ActionContext类获取

,使用静态方法得到ActionContext对象

,调用里面的getParameters得到表单数据

使用ServletActionContext类获取

1 直接调用ServletActionContext类里面的静态方法实现操作

2 使用表单post提交中,在struts2的action获取数据不会有乱码问题

(1)struts2有常量设置

3 在action操作域对象

使用实现接口方式获取(了解)

1 在action类实现不同的接口

2-2、Struts2封装数据操作

使用传统方式封装数据到对象

属性封装

1 把表单提交数据,封装到action里面的属性中

2 具体实现

(1)在action里面定义成员变量

- 成员变量名称和表单输入项的name属性值一样

(2)生成定义的变量set和get方法

模型驱动封装(重点)

1 使用属性封装,把数据封装到action里面的属性中,不能直接把数据封装到对象里面

2 使用模型驱动封装:把直接把表单提交数据封装到实体类对象里面

3 具体实现

第一步 让action类实现接口 ModelDriven

(1)ModelDriven<封装实体类名称>

- dbutils: new BeanHandler<User>(User.class)

第二步 实现接口里面的方法

(1)getModel方法

第三步 在action类的成员变量位置,手动创建实体类对象

注意问题

1 在一个action中获取同一个表单提交数据,

(1)可以使用属性封装,也可以使用模型驱动,但是这两种方式不能同时使用,

(2)如果同时使用,只会使用到其中的一种,使用模型驱动。

2-3、Struts2封装复杂数据(会用)

封装数据到List集合

1 写表单,提交表单之后,把数据封装到action里面list集合中

2 具体实现

第一步 在action里面声明list集合变量,生成get和set方法

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

第三步 在页面的表单里面写法

封装数据到Map集合

1 map集合结构 key-value结构

2 实现步骤

第一步 声明map集合变量

第二步 生成map集合变量的set和get方法

第三步 在表单输入项的name属性值写操作

使用属性封装数据到对象(会用)

第一步 在action声明变量,这个变量是实体类变量

(1)private User user;

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

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

继续阅读