0

2 つの jsf ページとそれぞれに 2 つの Bean があります。最初のページはログイン ページで、ユーザーがログイン パスワードを入力すると、メールボックス ページにリダイレクトされます。ログインページからメールボックスページにデータを取得したい。

ログインページの私のBean:

@ManagedBean(name = "login")
@ConcurrencyManagement(ConcurrencyManagementType.CONTAINER)
@RequestScoped
public class LoginFormBean {

    @EJB
    private LoginService loginService;

    private String email;

    private String password;

    public String getEmail() {
        return email;
    }

    public String getPassword() {
        return password;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String login() {
        if (loginService.loginUser(email, password))
          return "mailBox.xhtml?faces-redirect=true";
        else return "";
    }

}

メールボックスページの私のBean:

@ManagedBean(name = "mailBox")
@ConcurrencyManagement(ConcurrencyManagementType.CONTAINER)
@RequestScoped
public class MailBoxFormBean {

    @ManagedProperty(value = "#{login}")
    private LoginFormBean login;

    private String email = login.getEmail();

    public void setLogin(LoginFormBean login) {
        this.login = login;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getEmail() {
        return email;
    }
}

しかし、メールボックス ページにリダイレクトすると、ログイン Bean が null になり、そこからデータを取得できません。私が間違っていることは何ですか?

多くのチュートリアルと回答を見てきました (たとえば、 @ManagedProperty を使用してマネージド Bean 間でメソッドを呼び出す、または http://www.techartifact.com/blogs/2013/01/access-one-managed-bean-from- another-in-jsf-2-0.html )

私はまったく同じことをしていますが、それは私にとってはうまくいきません。

4

1 に答える 1