Как сохранить объект в JSF Session - PullRequest
1 голос
/ 20 сентября 2011

Я пытаюсь сохранить объект в сеансовую карту, но это дает мне исключение

public class testclass {

public static void main(String[] args) throws IOException
{
   UserInfo ui = new UserInfo();
   UserLogin ul= new UserLogin();

   ui.setAdds("India");
   ui.setEId("someone@yahoo.com");
   ui.setFName("someone");
   ui.setLName("someone2");
   ui.setStatus("single");
   ul.setPswd("somename");
   ul.setUserId("121");
   ul.setUserinfo(ui);



   AnnotationConfiguration config = new AnnotationConfiguration();
   config.configure("hibernate.cfg.xml");
   //new  SchemaExport(config).create(true, true);
   SessionFactory factory = config.buildSessionFactory();
   Session session = factory.getCurrentSession();
   System.out.println("Session configured");
   session.beginTransaction();
   session.save(ul);
   System.out.println("object saved");
   Query q = session.createQuery("from UserLogin where UserId='121'");
   UserLogin user = (UserLogin)q.uniqueResult();

   if(user!=null)
   {

      ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
      Map<String, Object> sessionMap = externalContext.getSessionMap();
      sessionMap.put("User",user);
      UserLogin hd =  (UserLogin)sessionMap.get("User");
      System.out.println("the user id is "+hd.getUserId());  
    }
        session.getTransaction().commit();

}

Исключение:

Исключение в потоке "main" java.lang.NullPointerException в BeanMngr.testclass.main (testclass.java:58) Результат Java: 1 BUILD SUCCESSFUL (общее время: 4 секунды)

Как возникает эта проблема и как я могу ее решить?

1 Ответ

9 голосов
/ 20 сентября 2011

Если вы хотите сохранить объект в сеансе jsf, выполните следующие действия:

FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("yourKey", yourObject);

SessionMap - это Map<String, Object>, и вы можете получить доступ к сохраненным объектам с помощью метода get(Object key).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...