jsf 2 - sessionscope - Cómo guardar un objeto en la sesión JSF
sesiones en jsf (1)
Intento guardar el objeto en el mapa de sesión, pero me está dando una excepción
public class testclass {
public static void main(String[] args) throws IOException
{
UserInfo ui = new UserInfo();
UserLogin ul= new UserLogin();
ui.setAdds("India");
ui.setEId("[email protected]");
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();
}
Excepción:
Excepción en el hilo "principal" java.lang.NullPointerException en BeanMngr.testclass.main (testclass.java:58) Resultado de Java: 1 CONSTRUIR EXITOSO (tiempo total: 4 segundos)
¿Cómo se causa este problema y cómo puedo resolverlo?
Si desea almacenar un objeto en la sesión jsf, haga lo siguiente:
FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("yourKey", yourObject);
SessionMap es un Map<String, Object>
y puede acceder a sus objetos almacenados con la ayuda del método get(Object key)
.