Импорт Liferay Taglib не работает в JSP - PullRequest
3 голосов
/ 09 ноября 2011

У меня проблемы с импортом тегов liferay на одну из моих страниц JSP, не знаю, что я делаю неправильно. Я делал то же самое в предыдущих проектах, но теперь по какой-то причине он не работает.

Мой код для импорта:

<%@ taglib uri="http://liferay.com/tld.ui" prefix="liferay-ui" %>

Синтаксическая ошибка, которую я получаю:

The absolute uri: http://liferay.com/tld.ui cannot be resolved in either web.xml or the jar files deployed with this application

Я пытался гуглить эту проблему довольно широко, но безрезультатно. Ужасная документация (или ее отсутствие) для liferay также не очень помогает.

Заранее спасибо за любую помощь!

Ответы [ 3 ]

7 голосов
/ 09 ноября 2011

URI taglib разрешается из следующих мест (в порядке):

  1. Если контейнер совместим с платформой Java EE, библиотеки тегов, являющиеся частью платформы Java EE. В настоящее время сюда входят JSTL and JSF Tag Library библиотеки.
  2. Taglib Map in web.xml, web.xml может включать в себя явную карту путей ресурсов URI и TLD.
  3. TLDs in JAR files in WEB-INF/lib и TLDs under WEB-INF
  4. TLD's supported by Container

В вашем случае проверьте следующие случаи: 1) Если файл jar, созданный для liferay, существует в WEB-INF / lib, содержащий TLD в jar/META-INF, который будет определен с помощью http://liferay.com/tld.ui URI. 2) Если файл JAR отсутствует и liferay-ui.tld существует вне файла JAR, добавьте запись URI-сопоставления в файл web.xml, как показано ниже:

<taglib>
    <taglib-uri>http://liferay.com/tld/ui</taglib-uri>
    <taglib-location>/WEB-INF/tld/liferay-ui.tld</taglib-location>
</taglib>
2 голосов
/ 11 ноября 2011

это не

<%@ taglib uri="http://liferay.com/tld.ui" prefix="liferay-ui" %>

это должно быть

<%@ taglib prefix="liferay-ui" uri="http://liferay.com/tld/ui" %>

обратите внимание, что "tld.ui" должно быть "tld / ui".

liferay-ui.tld происходит из util-taglib.jar, который liferay добавляет к вашему WEB-INF / lib во время горячего развертывания.

Никаких записей в ваш web.xml не требуется.

1 голос
/ 09 ноября 2011

Возможно, вам нужно включить объявление taglib в ваш web.xml.

    <taglib>
        <taglib-uri>http://liferay.com/tld/ui</taglib-uri>
        <taglib-location>/WEB-INF/tld/liferay-ui.tld</taglib-location>
    </taglib>
...