Выборочное отключение зависимостей ресурса JSF
Если я использую на одной странице как bootsfaces, так и butterfaces, обе библиотеки импортируют свои объединенные таблицы стилей jquery и bootstrap, как показано ниже:
<link type="text/css" rel="stylesheet" href="/javax.faces.resource/bootstrap.min.css.xhtml?ln=butterfaces-configurable">
<link type="text/css" rel="stylesheet" href="/javax.faces.resource/css/bootstrap.min.css.xhtml?ln=bsf">
<script type="text/javascript" src="javax.faces.resource/jquery.min.js.xhtml?ln=butterfaces-configurable"></script>
<script type="text/javascript" src="javax.faces.resource/jquery.min.js.xhtml?ln=bsf"></script>
Если обе библиотеки используют одну и ту же версию, это приводит к потере пропускной способности для импорта дубликатов. Если обе библиотеки используют разные версии, возможно возникновение конфликта. Каков наилучший подход для решения этой проблемы? Могу ли я выборочно отключить однокомпонентные библиотеки для импорта определенных таблиц стилей или скриптов?
2 ответа
Вы можете использовать следующий параметр web.xml, чтобы отключить предоставление jQuery в #ButterFaces.
<context-param>
<param-name>de.larmic.butterfaces.provideJQuery</param-name>
<param-value>false</param-value>
</context-param>
вы также можете отключить загрузчик, если у вас есть собственная версия
<context-param>
<param-name>de.larmic.butterfaces.provideBootstrap</param-name>
<param-value>false</param-value>
</context-param>
Обновление от 22 января 2016 г. Тем временем мы (команда BootsFaces) предприняли некоторые шаги, чтобы добавить детальный контроль над загрузкой ресурсов. См. http://www.bootsfaces.net/layout/resourcemanagement.jsf для получения подробной информации. Короче говоря, BootsFaces не загружает jQuery, jQueryUI или Bootstrap, если обнаруживает, что эти ресурсы уже есть. Кроме того, вы можете отключить загрузку ресурсов с помощью параметров контекста web.xml.
Устаревший первоначальный ответ: в настоящее время единственным решением является использование OmniFaces, как сказал BalusC. Мы могли бы предложить улучшить BootsFaces, чтобы он добавлял jQuery.min.js и bootstrap.min.css, только если эти библиотеки не предоставлены страницей JSF. В этом случае ButterFaces предоставит jQuery и BootsFaces. Конечно, вы должны убедиться, что предоставленная версия jQuery совместима с BootsFaces.