Jsf 2 如何将对象保存到JSF会话中
我试图将对象保存到sessionmap中,但它给了我一个异常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.
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浏览器,我会遇到数据丢失的问题