检查 Vaadin 中是否存在会话变量
Checking if a session variable exists in Vaadin
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。
问题@How to get all sessions in Vaadin与我的问题无关
还有一件事
boolean isLoggedIn = getSession().getAttribute("user") != null;
不会使 Vaadin 内爆,所以我可能只是在做 Java Fail™
如有任何帮助,我们将不胜感激。
如果需要,您可以使用 VaadinService
直接访问 HTTP 会话。
HttpServletRequest request = (HttpServletRequest) VaadinService.getCurrentRequest();
request.getSession().setAttribute("name", "actual nameson");
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。
问题@How to get all sessions in Vaadin与我的问题无关
还有一件事
boolean isLoggedIn = getSession().getAttribute("user") != null;
不会使 Vaadin 内爆,所以我可能只是在做 Java Fail™
如有任何帮助,我们将不胜感激。
如果需要,您可以使用 VaadinService
直接访问 HTTP 会话。
HttpServletRequest request = (HttpServletRequest) VaadinService.getCurrentRequest();
request.getSession().setAttribute("name", "actual nameson");