2
Я создал SessionListener
, но он не работает, потому что я не знаю, как зарегистрировать его в faces-config.xml
. Я попробовал следующее:jsf - register SessionListener в faces-config
SessionListener
public class SessionListener implements HttpSessionListener {
@Override
public void sessionCreated(HttpSessionEvent arg0) {
HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
String param = request.getParameter("language");
IDAdminLanguage idl = (IDAdminLanguage) JSFUtils.resolve("#{languageBean}");
if (param != null && param.length() > 0) {
idl.setLanguage(param);
} else {
idl.setLanguage("de");
}
}
@Override
public void sessionDestroyed(HttpSessionEvent arg0) { }
}
лица-конфигурации
<listener>
<listener-class>ch.idadmin.util.SessionListener</listener-class>
</listener>
У вас большая ошибка в коде. «FacesContext» не обязательно доступен во время создания сеанса. Не используйте 'FacesContext' в' HttpSessionListener'. Или просто не используйте «HttpSessionListener», а конструктор (post) «IDAdminLanguage». – BalusC