Action(业务逻辑控制器)
- 可以是一个POJO,必须包含excute()方法.一般通过继承ActionSupport来完成.ActionSupport实现了诸多接口包括Action,提供了很多默认方法.
- 配置action:
- method:(可选)设置处理方法的名称。
- converter:设置类型转换器的完整类名
- excute()方法的内部实现:
- 收集数据(数据收集拦截器)
- 组织数据类型格式(封装为Entity类)
- 调用逻辑层接口,执行业务逻辑处理
- 准备页面所需数据.
- 转向下一个界面.
- 访问Servlet API
- ActionContext:封装了Action运行时所有需要的参数.
- getContext():静态方法,获取ActionContext.
- get(key):查找ActionContext(request)中key对应的值
- put(key,value):设置ActionContext(request)中key对应的值
- getParameters():获取所有请求参数的的Map对象.将页面数据封装到Map
- set/getSession():获取/设置session.
- set/getApplication():获取/设置Application.
- xxxAware接口访问:
- ServletContextAware:可访问ServletContext
- ServletRequestAware:可访问HttpServletRequest
- ServletResponseAware:可访问HttpServletResponse
- ServletActionContext(静态类):方法全是静态方法ServletActionContext.getXXX();
- ActionContext:封装了Action运行时所有需要的参数.
- 动态方法调用:用一个Action完成相关操作(多个函数),减少Action。
<form action="action名字!方法名">
不建议。- 在写action配置时使用method,指定处理函数
- 配置
<action>
的name属性时支持通配符*
,后面使用{1},{2},来访问。 - 一个包中有多个
<action>
元素,尽量将带有通配符的action放在最后,以免被前面的匹配到。 - 避免出现匹配不到的结果,在首位置添加
<default-action-ref name="" />
设置默认action。
- 数据对应方式
- 字段驱动:在action 中的定义与页面同名的变量,及get/set函数
- 域对象驱动:再action中定义JavaBean对象(注意new),设置get/set函数,需页面空间名改动,user.username。
+模型驱动action实现ModelDeiven接口,重写getModel();一个action只能用一个Model。
- 注解实现0配置
- ParentPackage:相当于struts.xml中的package
- Namespaces:相当于struts.xml中的package中的namespaces
- Results,Result(全局Result):name,location(以上作用于action类)
- Action:value,results(即可作用于类,也可作用于函数)