1.2 Struts2框架的学习路线
- 第一天:Struts2的概述、Struts2的入门、Struts2常见的配置、Struts2的Action的编写
- 第二天:Struts2的数据的封装、结果页面配置
- 第三天:Struts2的值栈和OGNL表达式
- 第四天:Struts2的标签库
1.3 Struts2的概述
1.3.1 Struts2的概述
1.3.1.1 什么是Struts2
- Struts2是一个基于MVC设计模式的WEB层框架。
Struts2的内核相对于Struts1来讲已经发生巨大变化。
1.3.1.2 常见的web层框架
- Struts2
- Struts1
- Webwork
- SpringMVC
1.3.1.3 Web层框架基于前端控制器模型设计
1.4 Struts2的入门
1.4.1 Struts2的入门
1.4.1.1 下载Struts2的开发环境
http://struts.apache.org/
1.4.1.2 解压Struts2开发包
- apps :Struts2提供的应用,war文件:web项目打成war包。直接放入到tomcat可以允许。
- docs :Struts2的开发文档和API
- lib :Strtus2框架的开发的jar包
- src :Struts2的源码
1.4.1.3 创建web项目,引入jar包
- 引入jar包
struts-blank项目下找jar包
1.4.1.4 创建一个JSP页面
1.4.1.5 编写Action的类
1.4.1.6 对Action进行配置
- 在src下创建(提供)名称叫做struts.xml的配置文件
1.4.1.7 配置前端控制器(核心过滤器)
1.4.1.8 改写Action中的方法的返回值
1.4.1.9 改写struts.xml
1.4.1.10 编写success.jsp
1.5 Struts2的执行流程
1.5.1 分析Struts2的执行流程
1.5.1.1 Struts2的执行流程
当用户访问某一个Action的时候,先经过核心过滤器,在核心过滤器中执行一组拦截器(这组拦截器实现部分功能),执行目标Action,根据Action的返回值,进行页面跳转。
1.6 Struts2的常见配置
1.6.1 XML的提示问题
1.6.1.1 配置XML的提示
1.6.2 Struts2的配置文件的加载顺序(了解)
1.6.2.1 Struts2的配置文件加载顺序
- init_DefaultProperties() ----加载default.properties
- init_TraditionalXmlConfigurations(); ----加载struts-default.xml、struts-plugin.xml、struts.xml
- init_LegacyStrutsProperties(); ----加载struts.properties
- init_CustomConfigurationProviders(); ----加载配置提供类
- init_FilterInitParameters() ; // [6] ----加载web.xml中过滤器初始化参数
- init_AliasStandardObjects() ; // [7] ----加载Bean对象
1.6.2.2 加载顺序
- default.properties
- struts-default.xml
- struts-plugin.xml
- struts.xml
- struts.properties
- web.xml
注意:后配置的常量的值会覆盖先配置的常量的值。
1.6.3 Action的配置
1.6.3.1 package相关配置
- package标签称为包,这个包与Java中的包的概念不一致。包为了更好管理action的配置。
- package标签的属性
- name :包的名称,只有在一个项目中不重名即可。
- extends :继承哪个包,通常值为struts-default。
- namespace :名称空间,与标签中的name属性共同决定访问路径。
- 名称空间有三种写法:
带名称的名称空间 :namespace=”/aaa”
跟名称空间 :namespance=”/”
默认名称空间 :namespace=””
- 名称空间有三种写法:
- abstract :抽象的,用于其他包的继承。
1.6.3.2 action相关配置
- action标签配置Action类。
- action标签的属性
name :与namespace共同决定访问路径
class :Action类的全路径
method :执行Action中的哪个方法的方法名,默认值execute
converter :用于设置类型转换器
1.6.4 常量的配置
1.6.4.1 Struts2的常量配置
在Struts2的框架中,提供了非常多的常量:(在default.properties)
- struts.i18n.encoding=UTF-8 ----Struts2中所有的post请求的中文乱码不用处理。
- struts.action.extension=action, ----Struts2请求的默认的扩展名。默认扩展名是.action或者什么都不写。
在Struts2中修改一些常量的值:
- 修改常量的值,可以有三个位置进行修正
-
struts.xml中进行修改
-
struts.properties中进行修改
-
web.xml中进行修改
-
1.6.5 分模块开发的配置
1.6.5.1 include的配置
1.7 Action的访问
1.7.1 Action的写法
1.7.1.1 Action类是POJO的类
1.7.1.2 Action类实现一个Action的接口
1.7.1.3 Action类继承ActionSupport类
1. 7.2 Action的访问
1.7.2.1 通过method设置
1.7.2.2 通过通配符的方式进行配置(*****)
1.7.2.3 动态方法访问
-
开启动态方法访问
-
编写访问路径
1.8 CRM的客户列表显示
1.8.1 搭建开发环境
1.8.1.1 创建web项目,引入jar包
- Struts2
- Hibernate
1.8.1.2 引入配置文件
- Struts2
struts.xml
web.xml - Hibernate
核心配置
映射文件
日志文件
1.8.1.3 创建数据库和表
CREATE TABLE `cst_customer` (
`cust_id` bigint(32) NOT NULL AUTO_INCREMENT COMMENT '客户编号(主键)',
`cust_name` varchar(32) NOT NULL COMMENT '客户名称(公司名称)',
`cust_source` varchar(32) DEFAULT NULL COMMENT '客户信息来源',
`cust_industry` varchar(32) DEFAULT NULL COMMENT '客户所属行业',
`cust_level` varchar(32) DEFAULT NULL COMMENT '客户级别',
`cust_phone` varchar(64) DEFAULT NULL COMMENT '固定电话',
`cust_mobile` varchar(16) DEFAULT NULL COMMENT '移动电话',
PRIMARY KEY (`cust_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
1.8.1.4 创建包结构
1.8.1.5 引入相应页面
1.8.2 代码实现
1.8.2.1 修改请求路径
1.8.2.2 编写Action、Service、DAO