Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 2 如何将对象保存到JSF会话中_Jsf 2 - Fatal编程技术网

Jsf 2 如何将对象保存到JSF会话中

Jsf 2 如何将对象保存到JSF会话中,jsf-2,Jsf 2,我试图将对象保存到sessionmap中,但它给了我一个异常 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.

我试图将对象保存到sessionmap中,但它给了我一个异常

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();
}

例外情况:

BeanMngr.testclass.maintestclass.java的主线程java.lang.NullPointerException中出现异常:58 java结果:1构建成功总时间:4秒


这个问题是如何产生的,我如何解决它?

如果您想在jsf会话中存储对象,请执行以下操作:

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

SessionMap是一个映射,您可以在getObject key方法的帮助下访问存储的对象。

如果要在jsf会话中存储对象,请执行以下操作:

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

SessionMap是一个映射,您可以在getObject key方法的帮助下访问存储的对象。

不清楚您是否要将对象保存到org.hibernate.Session或javax.servlet.http.HttpSession?简而言之,感谢您的回复。我想保存一个对象,该对象可以在整个会话中使用,直到在中使会话无效为止JSF it。现在还不清楚您是想将对象保存到org.hibernate.Session还是javax.servlet.http.HttpSession?感谢回复简而言之,我想保存一个可以在整个会话中使用的对象,直到在JSF it中使会话无效为止。感谢回复Matt,但如果你看一下我的代码,我也做了同样的事情。。实际问题是当我尝试获取FacesContext.getCurrentInstance.getExternalContext时;这是一个NPE。你能告诉我如何摆脱这个NPE吗。我已经在faces-config.xml中将ma类声明为会话范围。我对jsf了解不多,但有一点是因为它无法获取扩展tread的CurrentInstance。请帮我解决这个问题。。提前谢谢啊,我看到你没有向下滚动。但我也看到了你的方法公共静态无效主。。。这对于web应用程序是不必要的/无效的。我建议退一步,从一些人提到的基本教程开始,这只是一个测试类。我用它来检查hibernate查询和所有查询是否正常工作。我已经准备好了ma应用程序的一半,以及m JU在这里创建的所有逻辑和模型类,即如何启动任何会话并将用户ID嵌入其中。。请推荐一些gud网站和书籍,从中我可以获得很好的知识。如果你是在Netbeans上,这是一个很好的起点。对于Eclipse,看一看其中一个。ahm safari浏览器是否可以删除会话数据?因为如果我使用safari browsersthanks来回复Matt,我会遇到数据丢失的问题,但是如果你看一下我的代码,我也会做同样的事情。。实际问题是当我尝试获取FacesContext.getCurrentInstance.getExternalContext时;这是一个NPE。你能告诉我如何摆脱这个NPE吗。我已经在faces-config.xml中将ma类声明为会话范围。我对jsf了解不多,但有一点是因为它无法获取扩展tread的CurrentInstance。请帮我解决这个问题。。提前谢谢啊,我看到你没有向下滚动。但我也看到了你的方法公共静态无效主。。。这对于web应用程序是不必要的/无效的。我建议退一步,从一些人提到的基本教程开始,这只是一个测试类。我用它来检查hibernate查询和所有查询是否正常工作。我已经准备好了ma应用程序的一半,以及m JU在这里创建的所有逻辑和模型类,即如何启动任何会话并将用户ID嵌入其中。。请推荐一些gud网站和书籍,从中我可以获得很好的知识。如果你是在Netbeans上,这是一个很好的起点。对于Eclipse,看一看其中一个。ahm safari浏览器是否可以删除会话数据?因为如果我使用safari浏览器,我会遇到数据丢失的问题