Struts2的框架的概述
什么是Struts2
Struts2是一个基于MVC设计模式的WEB层框架。
Struts2的内核相对于Struts1来讲已经发生巨大变化。
常见的web层框架
Struts2
Struts1
SpringMVC
Webwork
Web层框架基于前端控制器模型
Struts2的入门程序
下载Struts2的开发包
http://struts.apache.org/
解压Struts2开发环境
apps : Struts2提供的应用,war文件:web项目打成war包。直接放入到tomcat可以允许。
docs : Struts2的开发文档和API
lib : Strtus2框架的开发的jar包
src : Struts2的源码
创建web项目,引入jar包
引入jar包
struts-blank项目下找jar包
struts/apps/struts-blank.war/WEB-INF/lib/*.jar
编写JSP页面
编写Action类
配置Action类
在src下创建(提供)名称叫做struts.xml的配置文件
配置核心过滤器
改写Action中的方法的返回值
改写struts.xml
编写success.jsp
Struts2的执行流程
请求核心过滤器(StrutsPrepareAndExecuteFilter)->执行一组拦截器(完成部分的功能)->Action->Result.
当用户访问某一个Action的时候,先经过核心过滤器,在核心过滤器中执行一组拦截器(这组拦截器实现部分功能),执行目标Action,根据Action的返回值,进行页面跳转。
Struts2的常见配置
配置文件的加载顺序
default.properties
struts-default.xml
struts-plugin.xml
struts.xml
struts.properties
web.xml
注意:后配置的配置文件中的常量的值会覆盖先配置的配置文件的常量的值。
package相关配置
package标签称为包,这个包与Java中的包的概念不一致。包为了更好管理action的配置。
package标签的属性
name :包的名称,只有在一个项目中不重名即可。
extends :继承哪个包,通常值为struts-default。
namespace :名称空间,与<action>标签中的name属性共同决定访问路径。
名称空间有三种写法:
带名称的名称空间 :namespace=”/aaa”
根名称空间 :namespance=”/”
默认名称空间 :namespace=””
abstract :抽象的,用于其他包的继承。
action的配置
action标签配置Action类。
action标签的属性
name :与namespace共同决定访问路径
class :Action类的全路径
method :执行Action中的哪个方法的方法名,默认值execute
converter :用于设置类型转换器
constant配置(default.properties)
在Struts2的框架中,提供了非常多的常量:(在default.properties)
struts.i18n.encoding=UTF-8 ----Struts2中所有的post请求的中文乱码不用处理。
struts.action.extension=action,, ----Struts2请求的默认的扩展名。默认扩展名是.action或者什么都不写。
在Struts2中修改一些常量的值:
修改常量的值,可以有三个位置进行修正
struts.xml中进行修改
struts.properties中进行修改
web.xml中进行修改
分模块开发的配置
include的配置
Struts2的Action的访问
Action的编写
Action是POJO类
Action实现Action接口
Action继承ActionSupport类
Action的访问
通过method属性配置
通过通配符的方式配置
动态方法访问的方式
开启动态方法访问
编写访问路径