0

在我的项目中,我有一个Country班级和Language班级,他们有one-to-many关系。我必须根据登录用户显示所有语言。登录的用户有一个特定的国家。使用会话:

  1. 我必须将登录用户放入 sessin
  2. 使用会话获取相关国家。

我已经编写了用于检索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;
}
4

1 回答 1

0

首先我不确定上面的代码位于哪一层,这是一个 JSF 托管 bean 还是什么?

如果它是 JSF 托管 bean,您可以创建一个用户类来存储您想要的信息,但如果您只想在会话中保存UserDetails对象,您可以使用 FacesContext 来做到这一点,就像这样

FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("userInfo", getUserById("someId"));

您可以通过以下方式检索会话信息

(UsersDetails)FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("userInfo");
于 2013-09-10T14:52:27.117 回答