Я пытаюсь сделать в Spring MVC (+ Hibernate) что-то вроде этого:

  if (session.getAttribute("nameofthesession").equals(1)) {         
// do something     
    }

Однако это работает только в том случае, если сеанс уже имеет какое-то значение. Если он не существует, возвращается ошибка: Состояние HTTP 500 — Ошибка обработки запроса; вложенным исключением является java.lang.NullPointerException.

Что я должен сделать, чтобы заставить его работать (например, как написать что-то вроде «если сеанс существует и имеет значение = 1, то сделайте что-нибудь»)? Спасибо за ответ.

1
user3762519 29 Янв 2015 в 22:36
Я думаю, что это независимо от существования сеанса, но речь идет о существовании атрибута сеанса.
 – 
Razib
29 Янв 2015 в 22:47

2 ответа

Вы можете проверить существование сеанса, используя это -

request.getSession();  

Если он возвращает null, сеанс не существует. Подробнее см. здесь

2
Razib 29 Янв 2015 в 22:52

Если атрибут сеанса не существует, вы получаете нуль из метода getAttribute, вам нужно защитить нулевой возврат следующим образом:

Object v = session.getAttribute ("nameofthesession");
if (v != null && v.equals (1) { /* ... */ }

Или же:

if (Integer.valueOf (1).equals (session.getAttribute ("nameofthesession")) { /* ... */
1
Lev Kuznetsov 29 Янв 2015 в 22:41