gpt4 book ai didi

java - Vaadin 7 从客户端向服务器发送数据

转载 作者:行者123 更新时间:2023-11-30 11:29:02 26 4
gpt4 key购买 nike

我正在努力理解 clientservervaadin 7 中的通信方式。当谈到 server->client 通信时,我已经很好地理解了它,但我仍然无法理解它是如何以相反的方式工作的,即从客户端到服务器。我读到在客户端不应更改State,但他们应该通过rpc 发送相关数据。在客户端有一个 MyComponentClientRpc 接口(interface),其中包含一些方法,开发人员应该在 Connector 类中实现它们。然后可以在服务器上将接口(interface)实例化为匿名类并调用该方法。但是,如果客户端上有一个字符串“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";

....

}

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

最佳答案

However in case one has a String "myString" on client how can it be transfered to the server, since one can only call the method on server passing the parameters on the time of calling it? How can then one get the data lying on client?

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

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

在客户端,你调用

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

为了获得代理。

关于java - Vaadin 7 从客户端向服务器发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18651590/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com