В SessionListener
Я хочу установить некоторые значения @ManagedBean
с Session scope
, которые я хочу показать в JSF.Как установить значения в резервном бине в JSF из Session Listener или Servlet?
1
A
ответ
3
Вам необходимо создать экземпляр управляемого bean-компонента самостоятельно.
Bean bean = new Bean();
bean.setSomething(something);
event.getSession().setAttribute("bean", bean); // "bean" is managed bean name.
JSF будет просто использовать его, если он уже существует в рамках сеанса (вы видите, JSF «сессии сфера» под одеялом, представленных атрибутами HttpSession
). Обратите внимание, что таким образом любой @PostConstruct
не будет вызываться, и любые зависимости, которые должны быть введены @ManagedProperty
, @EJB
и т. Д., Вообще не будут введены. Вам также нужно будет сделать это сами.
Designtechnically, намного лучше выполнить задание только в конструкторе или @PostConstruct
метод самого класса бэк-компонента.
@ManagedBean
@SessionScoped
public class Bean {
@PostConstruct
public void init() {
// Here.
}
}
Спасибо .. за отличную помощь.! –
Добро пожаловать. – BalusC