NULL
VS
VaadinSession.getCurrent().getAttribute("name")
&
VaadinSession.getCurrent().setAttribute("name", "actual nameson")
是使用Vaadin会话管理的正确方法之一吗? 我找不到关于在Vaadin中获取和设置会话的可理解的文档。
我目前的问题: 如果我尝试获取会话变量,我会得到一个nullpointerException,我试图吞下它并继续但这会让Vaadin内爆。
有没有一种安全的方法来检查是否设置了Vaadin会话(和特定变量)?
在使用变量之前,是否必须初始化会话?
更具体地说,我想在用户被重定向到登录屏幕之前检查会话是否存在。如果用户未登录,则检查会抛出nullpointerException,因此未登录的用户无法加载loginForm。
问题@ How to get all sessions in Vaadin与我的问题无关。
还有一件事
getSession().getAttribute("name", username);
&
getSession().setAttribute("name", username);
不会使Vaadin内爆,所以我可能只是在做一个Java Fail™
任何帮助都会非常感激。
答案 0 :(得分:2)
如果需要,您可以使用VaadinService
直接访问HTTP会话。
HttpServletRequest request = (HttpServletRequest) VaadinService.getCurrentRequest();
request.getSession().setAttribute("name", "actual nameson");