在项目中,我有一个Country
阶级和Language
阶级和他们有one-to-many
关系。我必须根据登录用户显示所有语言。登录的用户具有特定的国家/地区。使用会话:
我已经写过查询以获取Country
登录用户的查询,但是我不知道如何将对象放入会话中以及如何获取它。
public UsersDetails getUserById(String loggedInUserEid) {
UsersDetails user = null;
try{
user = entityManager.find(UsersDetails.class, loggedInUserEid);
if(user!=null){
System.out.println("userList.get(0).getFirstName()::"+user.getFirstName());
}
}catch(EntityNotFoundException enfEx){
System.out.println("LoggedIn User not found in DB");
}catch(Exception e){
e.printStackTrace();
}
System.out.println("UserDAOImpl.getUserById()::Exit");
return (null!=user) ? user : null;
}
首先,我不确定上面的代码驻留在哪一层,这是JSF托管bean还是什么?
如果是JSF托管的bean,则可以创建一个User Class来存储所需的信息,但是,如果您只想在会话中保存UserDetails对象,则可以使用FacesContext来做到这一点,如下所示:
FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("userInfo", getUserById("someId"));
您可以通过以下方式检索会话信息
(UsersDetails)FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("userInfo");
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句