* struts2 提供了3中方式取访问 Servlet API
1.ActionContext
2.实现***Aware接口
3.ServletActionContext
* Action搜索顺序
1.判断package是否存在:
1.如果存在:判断action是否存在,如果不存在则去默认namespace的package里面取寻找action,如果没有则报错
2.如果不存在,检查上一级package是否存在(直到默认namespace),如果没有则报错
* 动态方法调用
1.指定method属性
2.感叹号方式
3.通配符方式 (推荐使用)
* 指定多个配置文件
1.在主配置文件里面采用包含的方式:
如:
<struts>
<!-- 包含的方式 ,指定多个配置文件 -->
<include file="helloworld.xml"></include>
<include file="***.xml"></include>
</struts>
* 默认Action
1.默认action,当找不到指定路径时,跳到默认路径
* struts2 后缀
1.扩展名,设置后只能使用扩展名登陆 ,比如用 .html后缀登陆
* 接收参数
1.使用Action属性接收
2.使用DomainModel接收
3.使用ModelDriven接收 (推荐使用)
* struts 处理流程
用户请求--》struts框架--》控制器(Action)--》struts框架--》视图
* struts2 拦截器
1.拦截器方法在Action执行之前或者之后执行
2.拦截器栈:多个拦截器的组合
3.实现步骤:
--创建拦截器
1.实现 Interceptor 接口
2.继承 AbstractInterceptor 类 (推荐使用)
--在配置文件中配置拦截器
--引用拦截器(在相应的action中引用注册的拦截器)
* 注意:当为包中某个action制定了某个拦截器,则默认拦截器不在起作用,需要手工引用
为action引用拦截器后,默认的拦截器defaultStack不再生效,需要手工引用(同时注意引用顺序,先引用默认的)