Dorado 5 : 20.附录二 Mapping、EL表达式与I18N国际化等 (T1)

Mapping控制器

dorado中的Mapping为其提供页面流处理机制,可以接收、分派客户端的请求以及配置控制器(Controller)与ViewModel的关系。

    • <mapping>

mapping是控制单元(unit)的根节点。主要用于组织exceptions、forwards、controllers等其他控制层的元素。通常新建一个mapping意味着它对应一个业务模块。
值得注意的是,当新建一个unit时,它需要在名为globel的unit中被声明,否则不会生效。

    • <exceptions>

exceptions用于配置和管理控制单元(unit)的异常(Exception)处理,它可以配置多个控制层中的全局异常。而子节点<exception>元素用于设置指定声明的Java 异常类。如果控制层(controller)中的Action 产生异常而没有处理,即Action部分并没有<exceptions>节点处理该异常。系统会自动到当前控制单元(unti)的<exceptions>元素中查找相应的异常作处理。

    • <forwards>

forwards用于声明当前控制单元(Unit)范围中的全局转发关系。可定义零个或多个<forward>元素,用于把一个指定的逻辑名称映射为特定的URL。
通过这种方式,Action或JSP 文件无需指定实际需要访问的URL,只要指定逻辑名称就能实现请求转发或者重定向,这可以降低控制层与视图层之间的耦合度,并有助于维护JSP 文件。

    • <controllers>

controller控制层表示一组相关功能操作的集合。在dorado中通常将一个相对业务模块对应一个controller控制。例如对于一个信息维护业务,可以看成是一个controller,而维护的动作,即对信息的新增、删除、修改、查询可以看作是controller中的各个对应的action。
在dorado中,任何一个controller都是全局范围的,而且每个controller都提供有一个默认的action实现访问处理功能。

    • <action>

在controller的实现类中,每个method方法对应一个action节点。Method的名字必须是"do+action的名称"这种方式。默认情况下,dorado会自动将action的名称中的第一个字母转成大写。例如某<action>的名称是add,为其在具体的实现类中添加对应的方法用来操作时,其对应的默认方法名是doAdd。
Action定义的方法必须要返回ActionForward对象。有系统根据返回的ActionForward对象执行Request跳转。如果方法处理时出现异常,系统会自动根据其中定义的<exceptions>进行处理。

EL表达式

在JSP2.0中提供了EL表达式定制视图标记中的动态属性值。而dorado也提供了EL表达式以及支持自定义EL表达式机制来简化开发。通常,EL表达式用于dorado的客户端开发,它在被dorado调用时解释成具体值。例如,如果在dorado的客户端需要动态地从预先设置的Session中获取指定key的值,那么可以写成${Session.key}或${session.getAttribute(key)}的方式来获取。
EL 表达式的格式是用($符号)定界,内容包括在 "{}"中。借住于EL 表达式的特性,可以实现快速开发,并降低对 JSP 脚本代码元素的依赖,提高 JSP 应用程序的可维护性(关于dorado中EL表达式的详细使用方法,请参考dorado其它相关资料)。

I18N国际化

在dorado中,com.bstek.dorado.i18n.ResourceManager类负责管理实现国际化开发。ResourceManager通过判断session中用户的Locale信息决定获取相关的国际化资源,如果未被设定则通过setting.xml文件中的common.locale.langugage和common.locale.country两个属性的配置决定用户的默认Locale。dorado中默认的二者值为:

<property name="common.locale.language" value="cn"/> 
<property name="common.locale.country" value="ZH"/>

默认国家为"中国大陆"语言是"中文"。访问时通过EL表达式实现,例如${Resource.bundleName.key}。(关于I18N国际化的具体使用方法,请参考dorado其他相关资料)