1、创建一个action的方式:
a、普通java类 实现 execute 方法
b、类实现 Action 接口
c、继承 ActionSupport 类
2、 action中的方法的调用
a、 直接调用 execute
b、通过 method 属性配置要调用的 Action 中的方法 ,通配符 匹配 方法名
c、DMI : struts.xml的配置中打开动态调用, action名为: Action!方法名
2.1、链接是跳至同一个 action ,但是需要不同的操作
a、通配符解决
在action类中 实现多个方法 如 add() delete()
配置struts.xml 的action :name="*_person" calss="" method="{1}"
若 action为 add_person ,add匹配上 自己写的actionlei中的 add() 方法名,
就可以直接调用 add 方法实现链接地址相同而操作不同的执行方式
b、DMI 动态方法调用 涉及安全性问题,不推荐
2.2、默认的action的配置:当请求的地址不存在或者没有和当前已有的action匹配成功时,跳转到默认的action
<default-action-ref name="index" />
<!-- 配置默认的action,当然需要这个action 是存在的 -->
<action name="index">
<result>
/index.jsp
</result>
</action>
3、struts2 传递参数: a、简单类型: 表单传参,
b、对象类型
c《推荐》、modelDriven 传递复杂类型数据
4、访问 web 对象
a、通过ActionContext.getContext 得到一个ActionContext对象
request=(Map<String, Object>) ActionContext.getContext().get("request");
session= ActionContext.getContext().getSession();
application=ActionContext.getContext().getApplication();
b 《推荐》、通过接口,由struts2 注入, map 是struts2 转换了 j2ee对象 底层的回调机制
实现 XXXAction implements RequestAware SessionAware ApplicationAware
c、通过 ServletActionContext.getRequest() 得到一个 HttpServletRequest对象 ,再根据request取到其他的web 对象
d、通过实现 ServletRequestAware 接口,注入 HttpServletRequest 对象,根据request取到其他的web 对象
4访问web对象总结:通过接口的实现是 IOC 控制反转方式: inversion of control
版权声明:本文为博主原创文章,未经博主允许不得转载。