Struts开发工作流程

下图是 Struts 的工作流程,前边我们提到,所有的请求都提交给 ActionServlet 来处理。

Struts

   ActionServlet 是一个 FrontController ,它是一个标准的 Servlet ,它将 request 转发给 RequestProcessor 来处理,

   ActionMapping ActionConfig 的子类,实质上是对 struts-config.xml 的一个映射,从中可以取得所有的配置信息

   RequestProcessor 根据提交过来的 url ,如 *.do ,从 ActionMapping 中得到相应的 ActionForn Action 。然后将 request 的参数对应到 ActionForm 中,进行 form 验证。如果验证通过则调用 Action execute() 方法来执行 Action ,最终返回 ActionFoward

   ActionFoward 是对 mapping 中一个 foward 的包装,对应于一个 url

   ActionForm 使用了 ViewHelper 模式,是对 HTML form 的一个封装。其中包含有 validate 方法,用于验证 form 数据的有效性。 ActionForm 是一个符合 JavaBean 规范的类,所有的属性都应满足 get set 对应。对于一些复杂的系统,还可以采用 DynaActionForm 来构造动态的 Form ,即通过预制参数来生成 Form 。这样可以更灵活的扩展程序。

   ActionErrors 是对错误信息的包装,一旦在执行 action 或者 form.validate 中出现异常,即可产生一个 ActionError 并最终加入到 ActionErrors 。在 Form 验证的过程中,如果有 Error 发生,则会将页面重新导向至输入页,并提示错误。

   Action 是用于执行业务逻辑的 RequsestHandler 。每个 Action 都只建立一个 instance Action 不是线程安全的,所以不应该在 Action 中访问特定资源。一般来说,应改使用 Business Delegate 模式来对 Business tier 进行访问以解除耦合。

   Struts 提供了多种 Action 供选择使用。普通的 Action 只能通过调用 execute 执行一项任务,而 DispatchAction 可以根据配置参数执行,而不是仅进入 execute() 函数,这样可以执行多种任务。如 insert,update 等。 LookupDispatchAction 可以根据提交表单按钮的名称来执行函数。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值