Struts 1.2(生命周期)中的控制流程

Pun*_*har 7 java struts struts-1 struts-config

标题可能听起来有点模糊,但我会试一试.我有2个servlet:

  1. one.java:扩展了Action class转发页面,成功或失败的基础上在输入端index.jsp
  2. two.java:扩展ActionForm class,有getter和setters方法

我有3个jsp文件:

  1. index.jsp:欢迎页面并询问用户名组合
  2. success.jsp:如果组合正确,则调用
  3. failure.jsp:如果组合为false则调用

我有2个xml文件:

  1. web.xml: DD
  2. struts-config.xml: Struts配置文件

我理解web.xml是如何工作的.我唯一的疑问是,首先从struts.xml调用one.java /two.java中的哪一个?

我试图调试并发现ActionFormtwo.java首先被调用,然后它将值返回到Actionie one.java.

但是Action类应该首先执行,然后是动作形式吗?我的意思是这就是MVC架构所遵循的.

请解释.链接到非常详细的工作流程将非常有用.

bsi*_*nau 12

之前调用ActionForm类也就不足为奇了Action- 在调用Struts动作方法之前,Struts表单应填充用户的数据,其中任何一个都有4个参数:

ActionMapping actionMapping,
ActionForm actionForm,
HttpServletRequest request,
HttpServletResponse response
Run Code Online (Sandbox Code Playgroud)

第二个 - ActionForm应该准备好允许最远的数据处理.我刚刚找到了很好的序列图来说明所有Struts生命周期阶段:

在此输入图像描述

简而言之:

  1. 获取客户端请求后,Struts前端控制器调用RequestProcessor使用struts-config.xml找出适当的操作和表单
  2. RequestProcessor 获取Struts表单对象(或者如果它不存在则创建它),填充请求中的数据,启动验证(如果存在)并调用适当的Struts操作.
  3. Struts动作执行所有必要的操作.