从请求scop bean初始化Session bean

时间:2011-04-29 06:40:29

标签: jsf-2

大家好
我使用的是JSF 2.0,我有两个bean UserBean(Request Scope)和UserInfoBean(Session Scope)。 我想知道如何从UserBean(请求范围)的一个方法初始化UserInfoBean,以便我可以从任何地方访问它。

我也想知道更好的性能1.将bean作为会话bean 2.将不同的变量分别放入会话中。
非常感谢

1 个答案:

答案 0 :(得分:4)

将会话范围的bean注入请求范围bean的@ManagedProperty。这样,它可用于请求范围bean中的所有操作方法。

E.g。

@ManagedBean
@SessionScoped
public class UserManager {

    private User user;

    // ...
}

@ManagedBean
@RequestScoped
public class Login {

    private String username;
    private String password;

    @EJB
    private UserService userService;

    @ManagedProperty(value="#{userManager}")
    private UserManager userManager;

    public String submit() {
        User user = userService.find(username, password);

        if (user != null) {
            userManager.setUser(user);
            return "home";
        } else {
            addMessage("Unknown login, try again");
            return null;
        }
    }

    // ...
}