如何解决Vaadin路由/导航
所以我有一个RequestHandler(使用VaadinServiceInitListener):
public class ApplicationServiceInitListener implements VaadinServiceInitListener {
@Override
public void serviceInit(ServiceInitEvent event) {
event.addRequestHandler((session,request,response) -> {
...
});
}
然后在RequestHandler中,我想检查是否已登录用户。到目前为止一切顺利。
如果用户已登录,则将按常规处理该请求。如果没有,我想将他重定向到登录页面。请求处理程序有可能吗?
我像这样使用UI类的navigation-Method:
UI.getCurrent().navigate("..");
但是问题在于,在请求时,没有实例化UI,所以我将获得NPE。
解决方法
不是您的确切问题的答案(是否可以解决),但通常会出现在routing lifecycle docs中的BeforeEnterListener
(您可以在其中进行重新路由)中。有关示例,请参见spring security tutorial中的代码:
void beforeEnter(BeforeEnterEvent event) {
if (!LoginView.class.equals(event.getNavigationTarget()) && !SecurityUtils.isUserLoggedIn()) {
event.rerouteTo(LoginView.class);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。