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

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) { }

}

faces-config
<listener>
   <listener-class>ch.idadmin.util.SessionListener</listener-class>
</listener>

最佳答案

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

<web-app ...>
        <listener>
        <listener-class>ch.idadmin.util.SessionListener</listener-class>
    </listener>
</web-app>

关于java - jsf-在faces-config中注册SessionListener,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10188896/

10-09 00:09