1.使用Struts2操作ServletAPI
解耦:
方式一:Map<String,Object> map=ActionContext.getContext().getSession();
方式二:注入SessionAware
getSession(Map<String,Object> map){
}
耦合:
方式一:HttpSession session=ServletActionContext.getRequest().getSession();
方式二:实现接口ServletRequestAware
public void setServletRequest(HttpServletRequest httpServletRequest) {
this.httpServletRequest=httpServletRequest;
}
2.Struts2 自动装配
零散参数 Page UI 表单元素的名字--------->Action的成员变量的名称一致
对象类型 Page UI info.userName ---------->info
ModelDriven<UserInfo> 手动的new成员变量 Page UI userName ------------>info
3.Struts2标签
<s:form action="" method="">
<s:textfield>
<s:password>
<s:submit>
4.struts执行过程:
1、客户端浏览器发出HTTP请求。
2、根据web.xml配置,该请求被FilterDispatcher接收。
3、根据struts.xml配置,找到需要调用的Action类和方法, 并通过IoC方式,将值注入给Aciton。
4、Action调用业务逻辑组件处理业务逻辑,这一步包含表单验证。
5、Action执行完毕,根据struts.xml中的配置找到对应的返回结果result,并跳转到相应页面。
6、返回HTTP响应到客户端浏览器
5.1:
避免多个action影响,在地址栏输入dimAction!跟着自己想找的result
5.2:
1.通配符:用于匹配的字符 正则表达式
缺点:1.可读性差
2.和其他一些标签联合使用的使用,其他标签的威力发挥不出来了
3.匹配元字符
4. 代码/语法 说明
. 匹配除换行符以外的任意字符
w 匹配字母或数字
s 匹配任意的空白符
d 匹配数字
匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束
5. 限定元字符
+ 1到多次
? 0到1
* 0到多次
5.3
Result结果集的类型
chain:转发到Action
<result name="add" type="chain">
<param name="actionName">resultActionList</param>
<param name="namespace">/</param>
</result>
dispatcher:默认值:转发到jsp页面
redirect:重定向到页面
redirectAction:重定向到Action
<result name="add" type="redirectAction">
<param name="actionName">resultActionList</param>
<param name="namespace">/</param>
</result>
5.4
6.
struts2配置文件加载顺序
1.default.properties 必须记忆
2.struts-default.xml package 必须记忆
//3.struts-plugin.xml
4.struts.xml 必须记忆
//5.struts.property
6.web.xml 必须记忆