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可以根据提交表单按钮的名称来执行函数。

时间: 2024-11-03 15:28:29

Struts开发指南之工作流程的相关文章

Struts开发指南之MVC架构

模型-视图-控制器(MVC)是80年代Smalltalk-80出现的一种软件设计模式,现在已经被广泛的使用. 1.模型(Model) 模型是应用程序的主体部分.模型表示业务数据,或者业务逻辑. 2.视图(View) 视图是应用程序中用户界面相关的部分,是用户看到并与之交互的界面. 3.控制器(controller) 控制器工作就是根据用户的输入,控制用户界面数据显示和更新model对象状态. 开发指南之MVC架构-springmvc开发指南pdf"> MVC 式的出现不仅实现了功能模块和显

Struts开发指南之安装与使用

Struts可以运行在任何一个支持JSP1.2和Servlet2.3的WEB Container中Struts将所有的请求提交到同一个中心控制器,org.apache.struts.action.ActionServlet 类 web.xml配置 <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> &

Struts开发指南之其他Web构架

Struts是一个Web Framework.那么什么是Framework? Framework概念并不是很新了,伴随着软件开发的发展,在多层的软件开发项目中,可重用.易扩展的,而且是经过良好测试的软件组件,越来越为人们所青睐.这意味着人们可以将充裕的时间用来分析.构建业务逻辑的应用上,而非繁杂的代码工程.于是人们将相同类型问题的解决途径进行抽象,抽取成一个应用框架.这也就是我们所说的Framework. Framework的体系提供了一套明确机制,从而让开发人员很容易的扩展和控制整个frame

Struts开发指南之Taglib

TAGLIB Struts对Taglib进行了扩展, Struts提供了四种基本自定义Taglib以及两种附加Taglib: bean:struts-bean taglib包含在访问bean和bean属性时使用的tag,也包含一些消息显示的tag. html:struts-html taglib包含用来创建struts输入表单的tag,和其它通常用来创建基于HTML用户界面的tag. logic:struts-logic taglib包含的tag用来管理根据条件生成输出文本,和其它一些用来控制的

Struts开发指南之J2EE n层结构

早期的网络系统设计常常采用三层结构.最常见的结构,就是表示( presentation )层 , 领域( domain )层 , 以及基础架构( infrastructure )层. n层结构的提出是为了适应当前B/S模式开发WEB Application的需要而提出的.传统的Brown模型是指:表示层( Presentation ),控制 / 中介层( Controller/Mediator ),领域层( Domain ) , 数据映射层( Data Mapping ) , 和数据源层( Da

Eclipse开发struts完全指南

一.准备安装程序 1.JDK 5.0 安装程序下载 下载地址: https://jsecom15b.sun.com/ECom/EComActionServlet/DownloadPage:~:com.sun.sunit.sdlc.content.DownloadPageInfo;jsessionid=502E87C71D77E3BC297C08B35DAC9AD4;jsessionid=502E87C71D77E3BC297C08B35DAC9AD4 同意协议后,可以下载jdk-1_5_0_05

jBPM-4.0中文开发指南-第6章 流程剖析

第 6 章 流程剖析 上面我们已经简要的接触了两个主要的流程结构: 活动,转移和活动组合. 这一章研究了流程定义结构的全部可能. 这儿基本有两个流程定义方式:基于图形和组合流程语言. 首先,流程支持这两种情况. 每个基于图形的执行和活动组合可以用来组合一些像UML超级状态的实现. 甚至,自动功能活动可以被实现, 所以它们可以使用转移和活动组合. 开发指南-第6章 流程剖析-jbpm开发入门指南"> 图 6.1. 逻辑流程结构的UML类图 下一步我们会显示一系列的实例图形结构, 这可以组成P

jBPM-4.0中文开发指南-第2章 流程虚拟机

第 2 章 流程虚拟机 为了通过插件方式容纳多种流程语言和活动,jBPM基于了流程虚拟机. 本质上,流程虚拟机是一个特定的可执行图形的框架. 一个流程定义表现为一个执行流, 它拥有可以表现为图形的一种结构. 流程虚拟机将流程定义从活动行为中切分了出来. 流程虚拟机从一个活动到下一个获得获取可执行的流程, 并将活动的行为委派给可插拔的Java类. 这里有一个API(ActivityBehaviour)用来作为 流程虚拟机和活动行为代码的接口.像jPDL这类的语言仅仅是 一系列活动行为的实现和解析器

嵌入式开发,从开发板到产品的基本工作流程

以独立.从头开发一个产品,以卖钱为目的的公司举例,并假设全部流程和人员都在一个公司内完成.不考虑学校的各种实验.比赛.毕设或者基于个人兴趣等实践.不考虑在公版硬件和模具上开发,不考虑部分工作外包. 一个公司无论大小,人员多少,是否有专设的部门,以下工作流程或者人员是不能少的(也许人员方面会有重叠,比如既做需求又写代码): 1. 市场.销售人员调研市场,收集需求,反馈给产品部门: 2. 产品工程师设计产品,提出详细的需求: 3. 相关人员对产品需求进行评审,从可行性.实现难度.时间周期.成本.市场