gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:12:00 25 4
gpt4 key购买 nike

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

  1. one.java: 扩展 Action 类 根据 index.jsp 的输入将页面转发到成功或失败
  2. two.java:扩展ActionForm类,有getters和setters方法

我有 3 个 jsp 文件:

  1. index.jsp:是欢迎页面并要求输入用户名组合
  2. success.jsp:如果组合正确则调用
  3. failure.jsp:如果组合为假则调用

我有 2 个 xml 文件:

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

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

我尝试调试并发现 ActionForm 类即 two.java 首先被调用,然后它将值返回给 Actionone.java

但是 Action 类不是应该先执行,然后再执行 action 表单吗?我的意思是这就是 MVC 架构所遵循的。

请解释。指向非常详细的工作流程的链接将非常有帮助。

最佳答案

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

ActionMapping actionMapping,
ActionForm actionForm,
HttpServletRequest request,
HttpServletResponse response

第二个 - ActionForm - 应该准备好允许最远的数据处理。我刚找到 great sequence diagram说明所有 Struts 生命周期阶段:

enter image description here

简而言之:

  1. 在获得客户端的请求后,Struts 前端 Controller 调用 RequestProcessor 以使用 struts-config.xml 找到适当的操作和表单
  2. RequestProcessor 获取 Struts 表单对象(如果不存在则创建它),使用来自请求的数据填充,启动验证(如果存在)并调用适当的 Struts 操作。
  3. Struts Action 执行所有进一步的必要操作。

关于java - Struts 1.2 中的控制流(生命周期),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19512942/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com