单击按钮,我需要执行一些操作,然后重定向到外部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\");");
}
}