0

我正在尝试如下简单使用复习插件,但它似乎不起作用。我试图在 Chrome 和 Firefox 中运行这个示例。我将项目导出为 WAR 并将其部署在 tomcat webapps 文件夹中。

package com.example.vaadinapp;

import javax.servlet.annotation.WebServlet;

import com.github.wolfie.refresher.Refresher;
import com.github.wolfie.refresher.Refresher.RefreshListener;
import com.vaadin.annotations.Theme;
import com.vaadin.annotations.VaadinServletConfiguration;
import com.vaadin.server.Page;
import com.vaadin.server.VaadinRequest;
import com.vaadin.server.VaadinServlet;
import com.vaadin.ui.Label;
import com.vaadin.ui.UI;
import com.vaadin.ui.VerticalLayout;

@SuppressWarnings("serial")
@Theme("vaadinapp")
public class VaadinappUI extends UI {

    Refresher refresher;
    Label timeLabel;
    Page page;

    @WebServlet(value = "/*", asyncSupported = true)
    @VaadinServletConfiguration(productionMode = false, ui = VaadinappUI.class)
    public static class Servlet extends VaadinServlet {
    }

    @Override
    protected void init(VaadinRequest request) {
        final VerticalLayout layout = new VerticalLayout();
        layout.setMargin(true);
        setContent(layout);

        refresher = new Refresher();
        page = this.getPage();
        timeLabel = new Label(String.valueOf(page.getWebBrowser().getCurrentDate()));

        refresher.setRefreshInterval(1000);
        refresher.addListener(new RefreshListener() {
            @Override
            public void refresh(Refresher source) {
                timeLabel.setCaption(String.valueOf(page.getWebBrowser()
                        .getCurrentDate()));
            }
        });
        addExtension(refresher);

        layout.addComponent(timeLabel);

    }

}

我在这里做错了什么?我也尝试了相同的示例SimpleDateFormat而不是使用WebBrowser getCurrentDate()但仍然是相同的问题

4

1 回答 1

0

从 vaadin 7.2 开始,您不需要 refesher 插件。只需启用推送支持

https://vaadin.com/book/vaadin7/-/page/advanced.push.html

于 2014-08-04T07:34:32.327 回答