Action Form的过程

时间:2022-12-18 06:05:28

1、读取配置(初始化ModuleConfig对象)

Struts框架总控制器(ActionServlet)是一个Servlet,
在web.xml中配置成自动启动的Servlet。
读取配置文件(struts-config.xml)的配置信息,
为不同的Struts模块初始化响应的ModuleConfig对象

2、发送请求
用户提交表单或调用URL向Web应用程序器提交一个请求,
请求数据用HTTP协议上传给Web服务器。

3、填充FORM(实例化、复位、填充数据、校验、保存)
(1)检查Action的映射,确定Action中已经配置了对ActionForm的映射
(2)根据name属性,查找form bean的配置信息
(3)检查Action的form bean的使用范围,确定在此范围下(request,session),是否已经有此form bean的实例
(4)假如当前范围下,已经存在form bean的实例。
而对当前请求来说,是同一种类型的话就重用,
否则,就重构一个form bean实例,并且保存在一定作用范围
(5)form bean的set()方法调用
(6)调用对应的setter()方法,对状态属性赋值
(7)如果validate的属性设置为true,那么就调用form bean的validate()方法
(8)如果validate()方法没有返回任何错误,控制器将ActionForm作为参数,传给Action实例的execute()方法并执行

注:直接从ActionForm类集成的reset()和validate()方法,并不能实现什么处理功能,
所以有必要自己重新覆盖

4、派发请求
控制器根据配置信息ActionConfig将请求派发到具体的Action,
响应的FormBean一并传给这个Action的execute()方法

5、处理业务
Action一般只包含一个execute方法,它负责执行响应的业务逻辑。
完毕返回一个ActionForward对象,控制器通过该ActionForward对象那个来进行转发工作

6、返回响应
Action根据业务处理的不同结果返回一个目标响应对象给总控制器,
该目标响应对象对应一个具体的JSP页面或另一个Action

7、查找响应
总控制器根据业务功能Action返回的目标响应对象,
找到对应的资源对象,通常是一个具体的JSP页面

8、响应用户
目标响应对象将结果展现给用户目标响应对象(JSP)
将结果展现给用户