jsf-在faces-config中注册SessionListener

yve*_*ler 3 java jsf listener faces-config

我创建了一个,SessionListener但是它不起作用,因为我不知道如何在中注册它faces-config.xml。我尝试了以下方法:

会话监听器

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) { }
Run Code Online (Sandbox Code Playgroud)

}

faces-config

<listener>
   <listener-class>ch.idadmin.util.SessionListener</listener-class>
</listener>
Run Code Online (Sandbox Code Playgroud)

Jig*_*shi 5

Yuu需要在web.xml(而不是faces-config.xml中)添加该配置。

<web-app ...>
        <listener>
        <listener-class>ch.idadmin.util.SessionListener</listener-class>
    </listener>
</web-app>
Run Code Online (Sandbox Code Playgroud)