如何在vaadin中使用PollListener?

mem*_*und 1 java spring vaadin vaadin4spring

我正在尝试使用PollListener以下代码在vaadin中:

@VaadinUI
@PreserveOnRefresh
public class ApplicationUI extends UI {
    @Override
    protected void init(VaadinRequest request) {
        setPollInterval(1000);
        access(new Runnable() {
            @Override
            public void run() {
                System.out.println("TEST POLL: " + counter++); //is only printed a single time
            }
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

打开我的应用程序时,打印输出"TEST POLL 0"一次.但就是这样.我可能错过了什么?

Mor*_*fic 7

您无需执行任何操作,轮询示例明确指出:

通过执行此操作,浏览器将每个"超时"ms轮询服务器并检索任何可能挂起的更改

因此,无论您在应用程序中执行了什么操作,都会在下一次轮询发生时在客户端浏览器上更新.在该示例中,您应该看到在加载UI后5秒钟显示标签,而没有任何特殊的用户交互.

但是,如果您需要为每个此类请求执行一些代码,则可以添加一个 pollingListener

@Override
protected void init(VaadinRequest request) {
    setPollInterval(1000);
    addPollListener(new UIEvents.PollListener() {
        @Override
        public void poll(UIEvents.PollEvent event) {
            log.debug("Polling");
        }
    });
}
Run Code Online (Sandbox Code Playgroud)