文章目录
- 一、Struts框架的概述
- 1. 什么是struts2
- 2. 常见的web框架
- 3. WEB层的框架都会基于前端控制器的模式:
- 二、Struts框架入门案例
- 1. 导入jar包
- 2. 创建action包、类
- 3. 配置action类的访问路径(.xml文件)
- 3.1 创建struts核心配置文件(struts.xml)
- 3.2 进行访问路径
- 4. 配置struts2过滤器(web.xml文件)
- 4.1 查看源代码
- 4.2 在web.xml里面配置过滤器
- 三、Struts2底层执行过程
- 1. struts2的执行流程
- 四、Struts2相关配置
- 1. Struts2的配置文件的加载顺序
- 2. struts的核心配置文件介绍(struts.xml)
- 1.1 标签package
- 1.2 标签action
- 1.3 标签result
- 3. Action的配置
- 4. 修改struts默认常量配置
- 方式一:在struts.xml文件中通过
一、Struts框架的概述
1. 什么是struts2
2. 常见的web框架
- struts2框架应用javaee三层结构中web层框架
- struts2 框架在struts1和webwork基础上发展全新的框架
- struts 解决的问题
- struts2版本
- web层常见框架
3. WEB层的框架都会基于前端控制器的模式:
二、Struts框架入门案例
建立web项目,因为用在web层的框架
1. 导入jar包
struts2 安装包结构
在lib中有100多个jar包,不能把这些jar包都导入到项目中去我们到apps里面去,找到示例程序,从实例程序中复制相关jar包
这是一个war包(创建一个web工程引入相应 jar包)
2. 创建action包、类
3. 配置action类的访问路径(.xml文件)
3.1 创建struts核心配置文件(struts.xml)
- 配置文件名称和位置是固定的
- 引入dtd约束
- action基本配置
3.2 进行访问路径
http://127.0.0.1:8080/struts2_day01/hello.action 直接访问会报错
- 问题一:服务器没有正常启动
- 问题二:没有配置过滤器
4. 配置struts2过滤器(web.xml文件)
4.1 查看源代码
导入struts的src文件夹(也可以直接导入struts的zip安装包)方便直接查看源代码。
过滤器在服务器启动时候创建,创建过滤器时候会执行init方法
- 在init方法中主要加载配置文件,包含自己创建的配置文件和struts自带的配置文件
4.2 在web.xml里面配置过滤器
可以正常访问了
1. struts2的执行流程
四、Struts2相关配置1. Struts2的配置文件的加载顺序
2. struts的核心配置文件介绍(struts.xml)
- 名称和位置是固定的
- 在配置文件中主要三个标签package、action、result,标签里面的属性
1.1 标签package
类似于代码包,区别不同的action,要配置action,必须首先写package标签
package标签属性
-
name属性
name属性值和功能本身没有关系的,在一个配置文件中可以写多个package标签,但是name属性值是不能相同的
-
extends属性
属性值是固定的:struts-default
写了这个属性之后,在package里面配置的类具有action功能 -
namespace属性
namespace属性值和action标签里面的name属性值构成访问路径 /hello.action
1.2 标签action
action标签配置action访问路径
action标签里面的属性
-
name属性
和namespace属性值构成访问路径 /hello
在package标签里面写多个action标签,但是action的name属性值不能相同
-
class属性
action类的全路径
-
method属性
比如在action里面默认执行的方法execute方法,但是在action里面写其他的方法
让action里面多个方法执行,使用method进行配置
1.3 标签result
根据action的方法返回值,配置到不同的路径里面
result标签属性
-
name属性
和方法返回值一样
-
type属性
配置如何到路径中(转发或者重定向)
type属性默认值 做转发操作
3. Action的配置
4. 修改struts默认常量配置
Struts2的这些常量大多在默认的配置文件中已经配置好,但根据用户需求的不同,开发的要求也不同,可能需要修改这些常量值,修改的方法就是在配置文件对常量进行重新配置。
方式一:在struts.xml文件中通过<constant》元素配置常量(重点)
表单提交数据到action里面,在action里面可以获取表单提交数据
-
表单提交数据有中文,有乱码
- 如果在action获取表单通过post方式提交中文,中文乱码问题帮解决,不需要自己处理问题
之前我们就已经介绍过了Struts2的配置文件的加载顺序,后加载的配置文件的常量的值会覆盖先加载的配置文件中常量的值。
方式二:在struts.properties文件中配置常量
在src下面常见struts.properties
方式三:在 web.xml文件中通过初始化参数配置常量
5. 分模块开发配置
在 Struts2的应用开发中,Action作为框架的核心类,实现对用户请求的处理,Action类被称为业务逻辑控制器。一个Action类代表一次请求或调用,每个请求的动作都对应于一个相应的Action类,一个Action类是一个独立的工作单元。也就是说,用户的每次请求,都会转到一个相应的Action类里面,由这个Action类来进行处理。简而言之,Action就是用来处理一次用户请求的对象。
action编写有三种方式
1. 创建普通类(POJO),这个不继承任何类,不实现任何接口
2. 创建一个类,实现Action接口
3. 创建一个类,继承ActionSupport(最常用)
Action 的访问不是难题,因为之前已经访问过了,但是出现一个问题一次请求现在对应一个Action,那么如果请求很多对应很多个Action.现在要处理的问题就是要让一个模块的操作提交到一个Action 中。
解决action访问问题有三种方式:
1. 通过action标签的method属性,在这属性里面写执行的action方法
步骤一:创建action,在action里面创建多个方法
步骤二:在Struts.xml配置action的访问
缺陷:action每个方法都需要配置,如果action里面有多个方法,配置很多的action
2. 使用通配符方式实现(最常用)
在action标签里面name属性,name属性值里面写符号*
- *理解:表示匹配到任意内容
3. 动态访问实现(不用)
4. 常见错误
- 如果action方法有返回值,在配置文件中没有配置,出现错误
在action里面的方法有返回值,如果有返回值时候类型必须是String
-
action里面的方法可以没有返回值,没有返回值时候,在result标签不需要配置
Struts2的国际化参考