大家好
我使用的是JSF 2.0,我有两个bean UserBean(Request Scope)和UserInfoBean(Session Scope)。
我想知道如何从UserBean(请求范围)的一个方法初始化UserInfoBean,以便我可以从任何地方访问它。
我也想知道更好的性能1.将bean作为会话bean 2.将不同的变量分别放入会话中。
非常感谢
答案 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;
}
}
// ...
}