Struts2学习总结(一)
Struts2 概述
- Apache Struts2最初被称为WebWork 2,它是一个简洁的、可扩展的框架,可用于创建企业级Java web应用程序。设计这个框架是为了从构建、部署、到应用程序维护方面来简化整个开发周期
- 对于MVC三层结构中应用于javaEE的web层框架。
- Struts2 在 Struts1 和 webwork 基础之上发展的全新的框架
- Struts2 使用 过滤器 action 解决web 请求servlet方便维护管理的一些基本操作 例如:增删改查 (个人理解)
Struts2 框架入门
- 导入jar包
下载Struts2 - all.zip 解压
(1)在lib中有jar包,不能把这些jar都导入到项目中
(2)到apps目录里面,找到示例程序,从示例程序复制jar包(app目录:放置Struts2官方的示例文件)
- 第二步 创建action
public class HelloAction {
// 访问servlet 都会执行 serivce 方法
// 访问action 都会执行 execute 方法 ( 默认访问 )
public String execute(){
return 'ok';
}
}
- 配置action类访问路径
(1)创建struts2核心配置文件
- 核心配置文件名称和位置是固定的
- 位置必须在src下面,名称 struts.xm
(2)引入dtd约束 (apps 目录下的示例文件找)
(3)action配置
访问路径:
http://127.0.0.1/struts2/hello.action
第四步 配置struts2过滤器
(Strust2自带过滤器放到 web.xml )
Struts2 执行过程
1 过滤器在服务器启动时候创建,创建过滤器时候执行init方法
(1)在init方法中主要加载配置文件
- 包含自己创建的配置文件和struts2自带配置文件
** struts.xml
** web.xml
Struts2的核心配置文件
1 名称和位置固定的 (src 文件夹下)
2 在配置文件中主要三个标签 package、action、result,标签里面的属性
标签package
1 类似于代码包,区别不同的action(或者action块 ),要配置action,必须首先写package标签,在package里面才能 配置action
2 package标签属性
(1)name属性 (区分不同的package)
- name属性值根功能本身没有关系的,
- 在一个配置文件中可以写多个package标签,name属性值不能相同的
(2)extends属性
- 属性值固定的,struts-default
- 写了这个属性之后,在package里面配置的类具有action功能
(3)namespace属性
- namespace属性值和action标签里面的name属性值构成访问路径 一般为 ‘/’
标签action
1 action标签配置action访问路径
2 action标签属性
(1)name属性
- namespace属性值和action标签里面的name属性值构成访问路径
- 在package标签里面写多个action标签,但是action的name属性值不能相同的
(2)class属性
- action全路径
(3)method属性
- 比如在action里面默认执行的方法execute方法,但是在action里面写其他的方法
- 让action里面多个方法执行,使用method进行配置
Struts2常量配置
1 struts2框架,帮我们实现一部分功能,struts2里面有常量,在常量里面封装一部分功能
2 struts2默认的常量位置(记住)
3 修改struts2默认常量值
(1)常用的方式
- 在struts.xml中进行配置
(2)还有两种方式(了解)
- 在src下面创建 struts.properties,进行修改
- 在web.xml进行配置
4 最常用常量
分模块开发
1 单独写配置文件,把配置文件引入到核心配置文件中
Action编写方式 (重点)
1 action编写有三种方式
第一种 创建普通类,这个不继承任何类,不实现任何接口
public class HelloAction{
//写其他方法
}
第二种 创建类,实现接口 Action
public class UserAction impletments Action {
@override
public String execute() throws Exception{
return SUCCESS ;
}
}
第三种 创建类,继承类 ActionSupport(一般使用)
public class HelleAction extends ActionSupport{
}
访问action的方法(重点)
1 有三种方式实现
第一种 使用action标签的method属性,在这个属性里面写执行的action的方法
第二种 使用通配符方式实现
第三种 动态访问实现(不用)
2 演示错误
(1)如果action方法有返回值,在配置文件中没有配置,出现错误
(2)在action里面的方法有返回值,如果有返回值时候类型必须是String
(3)action里面的方法可以没有返回值,没有返回值时候,在result标签不需要配置
- 把方法写成void
- 让返回值,返回 ”none”