Jsf 会话检索时出现空指针异常
我有一个问题,每当我在我的个人资料页面上通过Jsf 会话检索时出现空指针异常,jsf,jakarta-ee,jsf-2,nullpointerexception,Jsf,Jakarta Ee,Jsf 2,Nullpointerexception,我有一个问题,每当我在我的个人资料页面上通过惰性加载程序第三次调用getStatusList()时,user1.getEmail()会给我空指针异常。我认为user1无法从frienddet获取用户对象,是否有我遗漏的内容。如果有人能指出我的错误,我将不胜感激 public List<Status> getStatusList() { EntityManager em; EntityManagerFactory emf = Persistence
惰性加载程序第三次调用getStatusList()
时,user1.getEmail()
会给我空指针异常。我认为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
}
public List getStatusList(){
实体管理器;
EntityManagerFactory emf=持久性
.CreateEntityManager工厂(“FreeBird”);
em=emf.createEntityManager();
FacesContext context=FacesContext.getCurrentInstance();
HttpSession会话=(HttpSession)context.getExternalContext().getSession(true);
User user1=(User)session.getAttribute(“frienddet”);
System.out.println(user1.getEmail());
//一些代码
}
编辑
在对getStatusList()
进行了几次调用之后,frienddet
被从会话中删除,但我不知道为什么会发生这种情况,我没有用我的代码从会话中删除任何属性。您的调用会话。getAttribute(“frienddet”)
返回空值,因为“frienddet”
未初始化(我猜可能是初始化为空)
查看您的代码,您实际上并没有使用实体管理器(我假设这在下面省略的代码中)。因此,您需要查看会话中的“frienddet”
放置位置,并找出其为空的原因。如果跳转到调试器(我非常推荐),您应该会看到会话对象缺少一个键/值对或一个null键。Javascript!=Java,不要将其标记为Javascript问题当您使用Java时,我在调试器中将其签出,密钥为null。我还是不明白为什么前两次能用。你需要找的是钥匙放在哪里。很可能是在另一个请求中。“frienddet”在哪里?这就是问题所在。