Проверка, существует ли переменная сеанса в 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");
Другие вопросы по тегам