#jsf-2
#jsf-2
Вопрос:
Всем привет
Я использую JSF 2.0, у меня есть два компонента UserBean (область запроса) и UserInfoBean (область сеанса). Я хочу знать, как можно инициализировать UserInfoBean из одного метода UserBean (область запроса), чтобы я мог получить к нему доступ из любого места.
Я также хочу знать, что с точки зрения производительности лучше 1. Поместите компонент в качестве компонента сеанса 2. поместите разные переменные в сеанс по отдельности.
Большое спасибо
Ответ №1:
Внедрите компонент в области сеанса как @ManagedProperty
компонент в области запроса. Таким образом, он доступен для всех методов действия в компоненте области запроса.
Например.
@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;
}
}
// ...
}