在dorado 的AJAX请求中除了Dataset的FlushData技术之外,最主要的就是Command对象,例如:
客户端Dataset的数据保存;
视图模型业务方法的远程调用;
Spring中Bean的业务方法调用;
Dorado的Command对象除了支持AJAX技术处理之外,还提供了页面调用,页面流转,模态窗口调用,Excel数据导出等功能。
以上关于Command的所有功能都具有一个明显的特征,这就是命令执行时都需要通过HTTP向服务器发出请求,所以Command可以简单的理解为,dorado JSP与服务器交互的管理器。Dorado JSP中所有的服务器请求都应该通过Command实现,当然了传统的与服务器交互的技术也还可以继续采用,并且也不会冲突,只是在开发时我们都可以将这些请求通过定义不同的Command对象实现,这样可以大大加快程序员的开发设计速度,也应为采用了Command这种对象式的方式管理页面的所有服务器请求,对于系统地维护和管理也是大大有益的。Command作为客户端与服务交互的管理对象,不仅可以详细的定义交互的细节还提供了事件触发机制用以控制调用是否成功的细节处理,也提供的异步处理机制以及对应的事件回调机制。
Command对象属于视图模型中的重要对象,几乎存在于每一个dorado页面中。在传统的开发中我们经常需要在客户端对服务器发出各种请求,这些请求在视图模型中全部统一的采用命令的形式来定义并执行。例如:
查询命令QueryCommand,可以协助开发人员非常方便的实现一个查询条件传递以及无刷新的查询动作;
更新命令UpdateCommand,可以帮助开发人员一次性的提交一个包含增删改的复杂数据状态的多条记录信息,以及几个不相关的不同记录集的同时提交。并且事务管理可以得到保证等等;
请求命令RequestCommand,可以帮助开发人员很方便的定义一个新的请求,或则打开一个新的页面,这个页面的状态如何,打开参数的设定都可以在该命令下设定,如窗口大小设定,是否模态窗口,需要传递什么参数等等;
Excel数据导出命令Export2ExcelCommand,通过指定要导出数据的表格可以轻松得导出一个查询结果;
MarmotUpdateCommand, MarmotRPCCommand用于向Spring中的Bean发出各种请求;