Vaadin 10 Button 重新定义为 URL

Vaadin 10 Button redicted to URL

单击按钮时,我需要执行一些操作,然后重定向到外部 url。

我找到的所有示例都适用于较旧的 Vaadin 版本,不适用于 Vaadin 10。

有人可以提供示例吗?

在大多数情况下,我建议您使用 Vaadin 10+ 中新的 Anchor 组件。它的目的是覆盖你的用例,替换 BrowserWindowOpener 等

如果您的用例是将未登录的用户重定向到外部 SSO 登录页面,那么我会采用不同的方式。我不会在注销按钮中进行重定向,而是使用 BeforeEnterEvent 在视图的访问控制中实现它,您需要在视图中实现 BeforeEnterObserver 接口并重写 beforeEnter(..) 方法,如下所示:

@Override
public void beforeEnter(BeforeEnterEvent event) {
    if (VaadinSession.getCurrent().getAttribute("userLoggedIn") == null) {
        UI.getCurrent().getPage().executeJavaScript("window.open(\"http://vaadin.com/\", \"_self\");");
    }
}