我遇到问题,每当我第三次通过个人资料页面上的getStatusList()
致电Lazy loader
时,user1.getEmail()
正在给我nullpointer exception
。我认为user1
无法从frienddet
获取用户对象,是否有我遗漏的内容。如果有人可以指出我的错误,我将不胜感激。
public List<Status> getStatusList() {
EntityManager em;
EntityManagerFactory emf = Persistence
.createEntityManagerFactory("FreeBird");
em = emf.createEntityManager();
FacesContext context = FacesContext.getCurrentInstance();
HttpSession session = (HttpSession) context.getExternalContext().getSession(true);
User user1 = (User) session.getAttribute("frienddet");
System.out.println(user1.getEmail());
// some codes
}
修改
事实证明frienddet
在几次调用getStatusList()
之后被删除了会话但是我不知道为什么会发生这种情况,我没有用我的代码从会话中删除任何属性。
答案 0 :(得分:1)
您的调用session.getAttribute("frienddet")
返回null,因为"frienddet"
未初始化(我猜测,可以将其初始化为null)。
查看你的代码,你实际上并没有使用实体管理器(我假设这是在下面的省略代码中)。因此,您需要查看"frienddet"
放入会话的位置,并找出它在那里为空的原因。如果你跳进调试器(我真的推荐),你应该看到你的会话对象缺少一个键/值对或一个null的键。