Custom FaceletFactory in JSF 2.2 / Alternativen für virtuelle Host-Facelets

Since Mojarra / JSF 2.2. es ist nicht mehr möglich ein benutzerdefiniertes @ anzugebFaceletFactory Verwendung einerweb.xml context parameter:

<context-param>
        <param-name>com.sun.faces.faceletFactory</param-name>
        <param-value>my.faces.overrides.MyFaceletFactory</param-value>
</context-param>

ie @My-Anwendung bietet einige CMS-Funktionen, einschließlich der Unterstützung für virtuelle Hosts, um verschiedene Seiten (Facelets) basierend auf der aktuell angeforderten Domain bereitzustellen. Sohttp://www.domain1.com/index.xhtml gibt einen anderen Inhalt als @ zurühttp://www.otherdomain.com/index.xhtml. Die Mechanik dahinter ist bei der Verwendung eines benutzerdefinierten Resource Resolvers nicht besonders wichtig. Das eigentliche Problem dabei ist, dass jsf die Facelets nur basierend auf der angeforderten URL zwischenspeichert, die nicht den Hostnamen enthält "/index.xhtml" in beiden Fällen). Ich habe dieses Problem umgangen, indem ich einfach den Hostnamen in meinem benutzerdefinierten @ hinzugefügt habFaceletFactory: uri = "/" + getCleanHostName() + "://" + uri;. Mit JSF 2.2 scheint dies nicht mehr möglich zu sein. Gibt es eine andere Möglichkeit, das korrekte Caching-Verhalten in JSF 2.2 zu archivieren? Das Deaktivieren des Gesichter-Cache ist aufgrund seiner Leistungseinbußen keine Option.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage