1
VaadinSession.getCurrent().getAttribute("name")
&
VaadinSession.getCurrent().setAttribute("name", "actual nameson")

对比

getSession().getAttribute("name", username);
&
getSession().setAttribute("name", username);

这些是使用 Vaadin 会话管理的正确方法之一吗?我找不到有关在 Vaadin 中获取和设置会话的可理解文档。

我当前的问题: 如果我尝试获取会话变量,我得到一个 nullpointerException,我试图吞下它并继续,但这使得 Vaadin 内爆。

是否有一种安全的方法来检查是否设置了 Vaadin 会话(和特定变量)?

我必须先初始化会话才能使用变量吗?

更具体地说,我想在用户被重定向到登录屏幕之前检查会话是否存在。如果用户未登录,则检查将引发 nullpointerException,因此未登录的用户无法加载 loginForm。

问题@如何在 Vaadin 中获取所有会话与我的问题无关。

还有一件事

boolean isLoggedIn = getSession().getAttribute("user") != null;

不会让 Vaadin 内爆,所以我可能只是在做 Java Fail™</p>

任何帮助将非常感激。

4

1 回答 1

2

如果需要,您可以直接访问 HTTP 会话,使用VaadinService.

HttpServletRequest request = (HttpServletRequest) VaadinService.getCurrentRequest();
request.getSession().setAttribute("name", "actual nameson");
于 2016-06-20T23:46:43.367 回答