简述
RPCCommand是dorado中专门用于客户端向视图模型实现类发出命令请求的轻量级命令,它与UpdateCommand的最大不同是它发送请求的时候并不会上传dataset信息,只将自身的parameters()信息上传到视图模型的实现类。
详细说明参考UpdateCommand
使用
RPCCommand调用之前,我们可以在客户端设定其中的parameters参数集合,传递必要的信息到服务器端,并在服务调用结束之后我们可以通过命令对象的outParameters得到服务器传回的值。
查看一段客户端的调用代码:
command.parameters().setValue("num1", editorNum4.value);//传入editorNum4编辑框的值 |
Command通过method指定要调用的服务器端的方法,如commandDivide的定义如下:
<Control id="commandDivide" type="RPCCommand" method="divide" async="true"/> |
该处指定调用视图模型实现类的divide方法。视图模型的实现类中的divide方法定义如下:
public void divide(ParameterSet parameters, ParameterSet outParameters) |
视图模型中divide方法的设计需要注意一定要指明作用域为public,并且参数必须包含入参集合parameters以及出参集合outParameters
常用技巧
动态编程
在服务器段动态生成RPCCommand
protected void initControls() throws Exception { |
使用视图模型实现类提供的createControl方法创建RPCCommand对象,注意第一个参数用以指定组件的类型,第二个参数指定新建对象的id.
在服务器段获得View(视图模型)中定义的RPCCommand,并动态它的属性
protected void initControls() throws Exception { |
在上面的代码中可以看到通过实现类提供的getControl函数获得我们需要的组件对象,所需要的就是给它一个RPCCommand对象的id,注意开发时我们建议您直接在View的设计中添加一个空RPCCommand组件,这样我们就可以在initControls方法中通过getControl方法获得这个空的RPCCommand对象,并利用该对象提供的API进行各种设定和初始化的工作,如RPCCommand的setAsync(), setMethod()方法。
主要属性说明
参考UpdateCommand的属性说明
主要事件说明
参考UpdateCommand的事件说明