重定向到 root url 在 vaadin

Redirect to root url In vaadin

我有一个简单的 Vaadin 登录 application.After 用户登录 URL 看起来像下面

http://localhost:8080/app/#!loogedin

我想做的是在注销后 URL 应该看起来像这样

http://localhost:8080/app/

我试过了

Page.getCurrent().setUriFragment("", true);

但它不起作用

您可以使用 Page 中的 setLocation() 方法进行重定向。这需要在关闭会话之前完成,因为 UI 或页面在那之后不可用。

public class MyUI extends UI {
    @Override
    protected void init(VaadinRequest request) {
        setContent(new Button("Logout", event -> {// Java 8
            // Redirect this page immediately
            getPage().setLocation("/myapp/logout.html");

            // Close the session
            getSession().close();
        }));

        // Notice quickly if other UIs are closed
        setPollInterval(3000);
    }
}

进一步了解看一看Closing a session

对于 vaadin 10,您可以改用此代码

getUI().ifPresent(ui -> {
    ui.getPage().executeJavaScript("window.location.href = 'you url'");
});

参考 https://vaadin.com/forum/thread/17069258