Как сослаться на TagLib Facelets в JAR из Facelets и web.xml? - PullRequest
6 голосов
/ 20 ноября 2011

Я использую Apache MyFaces Commons Validator TagLib.

Как мне добавить это в мой web.xml? JAR-файл commons загружается и разрешается через Maven.

XHTML (я думаю, что это правильно):

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:p="http://primefaces.prime.com.tr/ui"
      **xmlns:mcv="http://myfaces.apache.org/commons/validators"**>

web.xml:

<context-param>
  <!-- To add additional tab libs -->
  <param-name>facelets.LIBRARIES</param-name>
  <param-value>??.xml</param-value>
</context-param>

РЕДАКТИРОВАТЬ : Причина, по которой я добрался до этого шага, заключается в том, что я попытался неправильно ссылаться на зависимость Maven, и при этом я попытался загрузить банку с Apache и разместил ее с моего собственный менеджер хранилища. Баночка, которую я пытался разместить самостоятельно, не содержала банку taglib.

После правильного получения зависимости все работает как обычно, нет необходимости явно определять taglib как то, что рекомендовал balusC. Thankx!

<dependency>
    <groupId>org.apache.myfaces.commons</groupId>
    <artifactId>myfaces-commons</artifactId>
    <version>1.1.2</version>
</dependency>

1 Ответ

12 голосов
/ 20 ноября 2011

Файл *.taglib.xml этой библиотеки уже находится в /META-INF файла JAR. Вам не нужно ничего добавлять к вашему web.xml. Если JAR находится в пути к классам веб-приложения, теги будут автоматически обнаружены. См. Также главу 10.3.2 спецификации JSF 2 :

10.3.2 Механизм библиотеки тегов Facelet

...

Время выполнения должно поддерживать два режима обнаружения для дескрипторов библиотеки тегов Facelet

  • Через объявление в web.xml, как указано в разделе 11.1.3 «Параметры конфигурации приложения»

  • Через автоматическое обнаружение, поместив файл дескриптора библиотеки тегов в банку на пути к классам веб-приложения, присвоив файлу имя, заканчивающееся на “.taglib.xml”, без кавычек, и поместив файл в META-INF каталог в файл jar.

...

Итак, все, что вам нужно, это убедиться, что JAR действительно находится в пути к классам среды выполнения веб-приложения - обычно это папка /WEB-INF/lib.

Если у вас возникли проблемы с использованием этой библиотеки, это вызвано чем-то другим, чем вы думаете.

...