JSF - 获取 SessionScoped Bean 实例

标签 jsf jsf-2 facelets javabeans

我的 Web 应用程序上有此配置。 2个 bean :

1° Bean - 检查登录;

@ManagedBean(name="login")
@SessionScoped
public class Login {
    private String nickname;
    private String password;
    private boolean isLogged;

    public String getNickname() { return nickname; }
    public void setNickname(String newValue) { nickname=newValue; }

    public String getPassword() { return password; }
    public void setPassword(String newValue) { password=newValue; }

    public void checkLogin() {
        ... i check on db the nickname and the password ...

        if(USER EXIST) {
            isLogged=true;
        } else {
            isLogged=false;
        }

        return true;
    }
}

2° Bean - 管理用户参数:
@ManagedBean(name="user")
@SessionScoped
public class User {
    private String name;
    private String surname;
    private String mail;

    public User() {
        String[] record=null;
        Database mydb=Configuration.getDatabase();
        mydb.connetti();
        ArrayList<String[]> db_result=null;
        db_result=mydb.selectQuery("SELECT name, surname, mail, domicilio FROM users WHERE nickname='???????'");

        int i = 0;
        while (i<db_result.size() ) {
           record=(String[]) db_result.get(i);
           i++;
        }
    }

    ... getter and setter methods...
}

如您所见,我想知道如何获取之前在我的login 上设置的昵称。 bean,所以我可以在我的数据库上进行查询。

事实上,我需要获取当前 session bean 登录的实例:我怎样才能得到它?我应该使用 session.getBean("login") 之类的东西:)

希望这个问题很清楚:)

最佳答案

也尝试使用以下代码:

    ExternalContext tmpEC;
    Map sMap;
    tmpEC = FacesContext.getCurrentInstance().getExternalContext();
    sMap = tmpEC.getSessionMap();
    login loginBean = (login) sMap.get("login");

关于JSF - 获取 SessionScoped Bean 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4278861/

相关文章:

java - 循环中每个项目的 JSF 唯一输入 bean

jsf-2 - List<Integer> 收到 List<String>

jsf - 警告 : This page calls for XML namespace declared with prefix [tagname] but no taglibrary exists for that namespace

不建议使用JSF 1.x ValueBinding,正确的替换方法是什么?

java - 三层体系中,业务逻辑应该放在哪里?

java - 浏览器上显示的 JSF 代码

jsf - Netbeans 错误 "The attribute target is not defined in the component outputStylesheet"

css - 如何在 css 中更改 primefaces 组件的样式

JSF/PrimeFaces selectOneMenu 更改 url 参数并重定向

html - 页面布局,CSS