回顾:
Model-封装数据,业务(JavaBean,ActionForm)
view-界面
Controller-控制处理(核心控制器ActionServlet)
ActionServlet---struts.configure.xml--ActionForward
Strtus2:
WebWork(%90)+struts1--->Struts2
核心控制器--FilterDispatcher Action=Action+ActionFrom
流程: 浏览器请求,
FilterDispatcher根据请求调用Action
Action调用execute方法 获取,返回browser信息
Struts 2与Struts 1的比较
1.Action灵活性增强
2.线程模式
3.Servlet依赖性
4.封装请求参数
5.类型转换
6.数据检验
7.表达式语言
8.Action执行控制
搭建Struts2项目:
blank.zip
1.引入jar包
复制blank/WEB-INF/lib
2.复制blank/WEB-INF/web.xml
3.复制blank/WEB-INF/class/struts.xml
core-2.xxx.jar 核心类库
xwork-2.xxx.jar xwork类库,Struts2在其上构建
ognl-2.6.x.jar 对象导航语言
freemarker-2.3.x.jar UI标签
commons--fileupload.xxx.jar
commons-logging-api-1.1.xxxjar
web.xml 控制器
struts-default.xml 预定义 拦截器/类型
struts.xml 开发者编辑
defalut.properties 框架整体属性特征
struts.properties
<package name="mystruts2" extends="struts-default" namespace="/security" >
<action name="login" class="tarena.action.LoginAction">
<result name="success" type="dispatcher">/security/success.jsp</result>
<result name="fail">/security/login.jsp</result>
</action>
</package>
package :
1.name用于被其他报包继承
2.namespace 用于给package中所有的actoin路径加一个默认的前缀,对result没作用
3.extends用于继承 其他包中的信息
4.abstract 表明该包是否为抽象包,true ,只能被继承,不能定义
acton:
1.name 代表action的路径,与package的namespace配合使用
2.class
3.method 代表action中要执行的方法
默认:execute
param: 用于给action的某个属性赋值,调用属性的set方法
1.name 代表要赋值的属性名
result:
1.name action方法的返回值的String值 success,fail,login
默认:success
2.type:相应类型,默认:dispatcher转发 redictAction冲顶想到另一个action
action通配: * * {1} {2}
动态调用:login!login.action
1.第一个login代表login.action
2.第二个login代表login方法
<action /* method ="" */></action>
struts.xml---struts-default.xml
struts.properties---default.properties
struts.properties可以重写 ,default.properties里面定义的所有key-value