С Mojarra/JSF 2.2. это не возможно больше, чтобы обеспечить пользовательский FaceletFactory
с использованием параметра web.xml
контекста:Пользовательский FaceletFactory в JSF 2.2/Альтернативы для виртуальных хост-фишек
<context-param>
<param-name>com.sun.faces.faceletFactory</param-name>
<param-value>my.faces.overrides.MyFaceletFactory</param-value>
</context-param>
Мое приложение предоставляет некоторые возможности CMS, в том числе поддержка виртуального хоста для обслуживания различных страниц (Facelets) на основе текущей запрошенной домена. Таким образом, http://www.domain1.com/index.xhtml
возвращает другой контент, чем http://www.otherdomain.com/index.xhtml
. Механика, стоящая за этим, не так важна, используя специальный редактор ресурсов. Реальная проблема при этом заключается в том, что jsf кэширует фишки только на основе запрошенного uri, который не содержит имя хоста ("/index.xhtml"
в обоих случаях). Я работал над этой проблемой, просто добавив в нее имя хоста в моем обычном FaceletFactory
: uri = "/" + getCleanHostName() + "://" + uri;
. С JSF 2.2 это уже не кажется возможным. Есть ли другой способ архивировать правильное поведение кеширования в JSF 2.2? Отключение кеша лиц не является вариантом из-за его влияния на производительность.
Пользовательская фабрика кечей - отличная новость. Благодаря! – Roben
Добро пожаловать :) – BalusC
Я просто перешел на JSF 2.2 вместе с указанными изменениями, которые прошли довольно хорошо. Пользовательский 'FaceletCacheFactory' не требовался, хотя URL-адрес, созданный' ResourceHandler' (наряду с моим измененным хостом), также используется в качестве ключа кэша mojarra. – Roben