Проверка, существует ли переменная сеанса в 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.
Вопрос @ Как пройти все сеансы в Ваадине не имеет отношения к моей проблеме.
еще кое-что
boolean isLoggedIn = getSession().getAttribute("user") != null;
не заставляет Vaadin взрываться, поэтому я, вероятно, просто делаю Java Fail ™
Любая помощь приветствуется.
1 ответ
При необходимости вы можете получить прямой доступ к HTTP-сеансу, используя VaadinService
,
HttpServletRequest request = (HttpServletRequest) VaadinService.getCurrentRequest();
request.getSession().setAttribute("name", "actual nameson");