如何将来自 vaadin 客户端 class 的消息委托给服务器 class?

How to delegate message from vaadin client class to server class?

我为此委派使用服务器 RPC,但没有触发任何内容。

步骤 1 - 创建服务器 rpc:

public interface UploadServerRpc extends ServerRpc {
    public void clicked(String buttonName);
}

步骤 2 - 创建连接器 class:

public class UploadComponentConnector extends UploadConnector {
    UploadServerRpc rpc = RpcProxy.create(UploadServerRpc.class, this);
            public UploadComponentConnector() {
                if(getWidget().isSubClick()) {
                 rpc.clicked(getWidget().getNotificationName());
                }
    }
}

步骤 3 - 服务器端 class:

public class UploadComponent extends Upload {
    private UploadServerRpc srpc = new UploadServerRpc() {
            @Override
            public void clicked(String name) {
                Notification notification = new Notification(name);
                UI.getCurrent().getPage().showNotification(notification);
            }
    };
    public UploadComponent() {    
        registerRpc(srpc);
    }
}

注意:在 VUpload 内部 class 处理一些限制它的工作但不能委托通知消息

没有任何反应....当我点击 vaadin 上传按钮时。

您应该在小部件端定义一个处理程序来处理点击事件。将您的逻辑放在连接器的构造函数中是不正确的。请改用以下代码作为连接器(希望对您有所帮助):

public class UploadComponentConnector extends UploadConnector {
    UploadServerRpc rpc = RpcProxy.create(UploadServerRpc.class, this);
    public UploadComponentConnector() {
        getWidget().addClickHandler(new ClickHandler() {
            public void onClick(ClickEvent event) {
                rpc.clicked(getWidget().getNotificationName());
            }
        });
    }
}