Vaadin 7将数据从客户端发送到服务器

时间:2013-09-06 06:47:49

标签: java client vaadin rpc

我正在努力理解clientservervaadin 7中沟通的方式。在server->client通信方面,我已经理解了这一点,但我仍然无法理解它是如何工作的,即从客户端到服务器。我已经读过,在客户端,我们不应该更改State,但是他们应该通过rpc发送相关数据。在客户端,有一个MyComponentClientRpc接口,其中包含一些方法,开发人员应在Connector类中实现它们。然后可以将接口实例化为服务器上的匿名类,并可以调用该方法。但是,如果在客户端上有一个字符串“myString”,它怎么能转移到服务器,因为在调用它时,只能调用服务器上传递参数的方法?那怎么能把数据放在客户端上呢?

public interface MyComponentClientRpc extends ClientRpc {

    public void getString(String s);

}  




public class MyComponentConnector extends AbstractComponentConnector {


    @SuppressWarnings("serial")
    MyComponentClientRpc mcRpc = new MyComponentClientRpc() {
        public void getString(String s) {
            // TODO Do something useful
                ????
        }
    };

public MyComponentConnector() {
        registerRpc(MyComponentClientRpc.class, mcRpc);

String a = "myString";

....

}

特别是,如何在客户端上实现该方法,如何在其中插入数据以及如何在服务器上调用它?

1 个答案:

答案 0 :(得分:1)

  

但是如果一个人在客户端上有一个字符串“myString”,它怎么可能   转移到服务器,因为只能在服务器上调用该方法   在调用它时传递参数?怎么可以得到   客户端的数据?

您使用的是错误的机制。实际上有两个RPC,ClientRpcServerRpc。在您的示例中,您使用ClientRpc,用于从服务器到客户端的调用。

要从客户端与服务器进行通信,您必须从ServerRpc扩展。

在客户端,您致电

 MyComponentClientRpc rpc = RpcProxy.create(MyComponentClientRpc.class, this)

以获取代理。