3、如果 validate() 方法返回的 ActionErrors 对象为 null ,或者不包含任何 ActionMessage 对象,就表示没有错误,数
据验证通过。
4、如果 ActionErrors 中包含 ActionMessage 对象,就表示发生了验证错误, Struts 框架会把 ActionErrors 对象保存到
request 范围内,然后把请求转发到恰当的视图组件, 视图组件通过 <html:errors> 标签把 request 范围内的 ActionErrors
对象中包含的错误消息显示出来,提示用户修改错误
30. 简述 Struts1 框架响应客户请求的工作流程
1. 检索和用户请求匹配的 ActionMapping 实例,如果不存在,就返回用户请求路径无效的信息。
2. 如果 ActionForm 实例不存在,就创建一个 ActionForm 对象,把客户提交的表单数据保存到 ActionForm 对象中。
3. 根据配置信息决定是否需要表单验证。如果需要验证,就调用 ActionForm 的 validate()方法。
4. 如果 ActionForm 的 validate()方法返回 null 或返回一个不包含 ActionMessge 的 ActionErrors 对象,就表示表单验证成功。
5. ActionServlet 根据 AtionMapping 实例包含的映射信息决定将请求转发给哪个 Action 。如果应的 Action 实例不存在,就
先创建这个实例,然后调用 Action 的 execute()方法。
6. Action 的 execute()方法返回一个 ActionForward 对象, ActionServlet 再把客户请求转发给 ActionForward 对象指向的 JSP
组件。
7. ActionForward 对象指向的 JSP组件生成动态页面,返回给客户。
对于以上流程的步骤( 4),如果 ActionForm 的 validate()方法返回一个包含一个或多个 ActionError 的 ActionErrors 对象,
就表示表单验证失败,此时 ActionServlet 将直接把请求转发给包含客户提交表单的 JSP 组件。在这种情况下,不会再创
建 Action 对象并调用 Action 的 execute方法。
31. 简述 Struts1 框架的初始化流程
对于采用 Struts 框架的 Web应用,在 Web应用启动时就会加载并初始化控制器 ActionServlet
ActionServlet 从 struts-config.xml 文件中读取配置信息,把它们存放到 ActionMappings 对象中。
在 Struts framework 中, Controller 主要是 ActionServlet ,但是对于业务逻辑的操作则主要由 Action 、ActionMapping 、
ActionForward 这几个组件协调完成(也许这几个组件,应该划分到模型中的业务逻辑一块)。
其中, Action 扮演了真正的控制逻辑的实现者,而 ActionMapping 和 ActionForward 则指定了不同业务逻辑或流程的运
行方向
32. Get 请求和 Post请求区别