#java #jsf #phaselistener
#java #jsf #phaselistener
Вопрос:
Возможно ли это? FacesContext.getCurrentInstance()
возвращает значение null.
Ответ №1:
Обычный сервлет не инициализируется / не вызывается во время запроса JSF, поэтому в сервлете нет средств a FacesContext
. Только когда URL-адрес запроса совпадает с FacesServlet
, тогда есть FacesContext
. Вместо этого вы должны зарегистрировать PhaseListener
в faces-config.xml
или в управляемом компоненте JSF. Подумайте о том, чтобы сделать это в конструкторе (post) управляемого компонента с областью приложения.
Комментарии:
1. Спасибо за ответ, хотя это то, что я боялся услышать. Я искал решение, которое не нужно изменять faces-config.xml .
2. Пожалуйста. Кстати, начиная с JSF 2.0, можно быстро создавать экземпляры компонентов с областью приложения без необходимости ссылаться на него в любом представлении или другом управляемом компоненте.