簡體   English   中英

檢查Vaadin中是否存在會話變量

[英]Checking if a session variable exists in Vaadin

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

VS

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™

任何幫助將非常感激。

您可以根據需要使用VaadinService直接訪問HTTP會話。

HttpServletRequest request = (HttpServletRequest) VaadinService.getCurrentRequest();
request.getSession().setAttribute("name", "actual nameson");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM