即:一个页面由多个子视图(用户部件)组成;子视图可以是最简单 HTML 控件、服务器控
件或多个控件嵌套构而成的 Web 自定义控件。页面都由模板定义,模板定义了页面的布
局,用户部件的标签和数目,用户指定一个模板,平台根据这些信息自动创建页面。针对
静态的模板内容,如页面上的站点导航,菜单,友好链接,这些使用缺省的模板内容配置
针对动态的模板内容(主要是业务内容),由于用户的请求不同,只能使用后期绑定,并且
针对用户的不同,用户部件的显示内容进行过滤。使用由用户部件根据模板配置组成的组
合页面,它增强了可重用性,并原型化了站点的布局。
视图部分大致处理流程如下:首先,页面模板定义了页面的布局;页面配置文件定义
视图标签的具体内容(用户部件);然后,由页面布局策略类初始化并加载页面;每个用
户部件根据它自己的配置进行初始化,加载校验器并设置参数,以及事件的委托等;用户
提交后,通过了表示层的校验,用户部件把数据自动提交给业务实体即模型。
这一部分主要定义了 WEB 页面基类 PageBase;页面布局策略类 PageLayout,完
成页面布局,用于加载用户部件到页面;用户部件基类 UserControlBase 即用户部件框
架,用于动态加载检验部件,以及实现用户部件的个性化。为了实现 WEB 应用的灵活性,
视图部分也用到了许多配置文件例如:置文件有模板配置、页面配置、路径配置、验证配
置等。
控制器:为了能够控制和协调每个用户跨越多个请求的处理,控制机制应该以集中的
方式进行管理。因此,为了达到集中管理的目的引入了控制器。应用程序的控制器集中从
客户端接收请求(典型情况下是一个运行浏览器的用户),决定执行什么商业逻辑功能,
然后将产生下一步用户界面的责任委派给一个适当的视图组件。
用控制器提供一个控制和处理请求的集中入口点,它负责接收、截取并处理用户请求;
并将请求委托给分发者类,根据当前状态和业务操作的结果决定向客户呈现的视图。在这
一 部分 主 要 定 义 了 HttpReqDispatcher( 分 发 者 类 ) 、HttpCapture( 请 求 捕获 者 类 ) 、
Controller(控制器类)等,它们相互配合来完成控制器的功能。请求捕获者类捕获 HTTP
请求并转发给控制器类。控制器类是系统中处理所有请求的最初入口点。控制器完成一些
必要的处理后把请求委托给分发者类;分发者类分发者负责视图的管理和导航,它管理将
选择哪个视图提供给用户,并提供给分发资源控制。在这一部分分别采用了分发者、策略
工厂方法、适配器等设计模式。
MVC 系统中的模型从概念上可以分为两类――系统的内部状态和改变系统状态的动作。
模型是你所有的商业逻辑代码片段所在。本文为模型提供了业务实体对象和业务处理对象
所有的业务处理对象都是从 ProcessBase 类派生的子类。业务处理对象封装了具体的处
理逻辑,调用业务逻辑模型,并且把响应提交到合适的视图组件以产生响应。业务实体对
象可以通过定义属性描述客户端表单数据。
所有业务实体对象都 EntityBase 派生子类对象,业务处理对象可以直接对它进行读
写,而不再需要和 request、response 对象进行数据交互。通过业务实体对象实现了对