Dorado 5 : 8.页面流管理框架 (WP)

页面流管理框架(Mapping)实现统一的页面流处理机制,用于接收和分派Client 请求,配置Controller 和View 的关系。Mapping为控制单元(Unit)的根节点,用于组织exceptions,forwards,controllers等其他控制层元素,通常对应为一个业务模块。

(图:Mapping)
<exceptions>元素用于配置和管理控制单元(Unit)的异常(Exception)处理,它可以配置多个控制层中的全局异常,子节点<exception>元素用于设置Java 异常类。如果控制层(controller)中的Action 产生异常而没有处理,系统会自动到当前控制层单元的<exceptions>元素中查找相应的异常作处理。
<forward>用于声明当前控制单元(Unit)范围中的全局转发关系,可定义零个或多个<forward>元素,用于把一个逻辑名称映射到特定的URL。通过这种方式Action或JSP 文件无需指定实际的URL,只要指定逻辑名称就能实现请求转发或者重定向,这可以减弱控制组件与视图组件之间的耦合,并有助于维护JSP 文件。
控制器(Controller)是一组具有相关功能的动作(Action)的集合,一般把一个控制器(Controller)看作相对独立的功能模块。例如:产品维护看作是一个控制器(Controller),而对产品的增加、修改、删除、查询都看作是控制器(Controller)的动作(Action)。在任何一个控制层单元(Unit)中定义的控制器(Controller)都是全局的,只须通过控制器(Controller)的名称就可以访问到。 每一个控制器(Controller)都拥有一个默认的Action,当用户访问一个控制器(Controller)且没有指定要访问的Action 时系统会自动的激活默认Action,默认Action 的name 是空字符串""。
当Action 发生异常,系统根据异常类型在当前Action 中查找匹配的<exception>对象,并用匹配的<exception>对象加以处理,如果未能找到匹配的<exception>对象,系统将继续到Action 所属的控制层单元(Unit)中去查找全局的<exception>配置,如果还未找到可以处理的<exception>元素,就到全局的控制层单元(GlobalUnit)中查找。