Vaadin 10 Кнопка перенаправлена ​​на URL

При нажатии на кнопку мне нужно выполнить какое-то действие, а затем перенаправить на внешний URL-адрес.

Все примеры, которые я нашел, относятся к более старой версии Vaadin и не работают на Vaadin 10.

Может кто-нибудь привести пример, пожалуйста?

1 ответ

Решение

В большинстве случаев я бы порекомендовал вам использовать новый компонент Anchor в Vaadin 10+. Его цель - охватить ваш вариант использования, заменить BrowserWindowOpener и т. Д.

Если ваш вариант использования заключается в перенаправлении незарегистрированных пользователей на страницу внешнего входа в систему единого входа, то я бы сделал это по-другому. Я не стал бы делать перенаправление в кнопке выхода из системы, а вместо этого внедрил бы ее в управление доступом к представлениям, используя 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\");");
    }
}
Другие вопросы по тегам