Как создать библиотеку тегов в Liferay 7.2?

Я новичок в Liferay, и мне нужно создать собственную библиотеку тегов, которую я могу использовать в своих портлетах Liferay. Но проблема в том, что я не получаю пошагового руководства или руководства по его созданию и использованию в Liferay.

Первая проблема заключается в том, что я не могу понять, какой проект мне нужно создать для этого.

Для Ex. Если я создаю портлет, мне нужно использовать шаблон проекта MVC-PORTLET при создании нового модуля liferay. Таким же образом, какой шаблон я могу использовать для создания custon Tag-Libraries в Liferay.

После этого мне нужно знать оставшиеся шаги для создания тега и использования его в моих портлетах.

1 ответ

Библиотеки тегов не являются специальными модулями Liferay Portal. Это стандартная технология, которая была (является?) Частью спецификации Java EE. Последнее известное мне официальное руководство, посвященное им, - это Руководство по Java EE 5. Вам, вероятно, следует прочитать это, чтобы узнать, как создавать собственные библиотеки тегов. То, как вы используете их в Liferay Portal, ничем не отличается от того, как вы используете их в любом другом веб-приложении.

Имейте в виду, что JSP и библиотеки тегов - довольно старые технологии. Хотя они все еще широко используются во многих проектах (например, Liferay Portal), я думаю, что они заменены JSF в последних спецификациях Java/Jakarta EE. Более того, с развитием Интернета за последние несколько лет многие разработчики и продукты (например, Liferay) переходят от генерации пользовательского интерфейса серверной части к таким вещам, как веб-компоненты и современные JS-фреймворки.

ОБНОВЛЕНИЕ (чтобы обратиться к разъяснению в комментарии):

В инструментах Liferay нет шаблонов (о которых я знаю) для создания пакетов taglib. Но стандартный модуль OSGi должен справиться с этой задачей. Важно сказать, что вы предоставляетеjsp.taglib способность в вашем bnd.bnd файл:

Provide-Capability:\
    osgi.extender;\
        osgi.extender="jsp.taglib";\
        uri="http://YOUR_DOMAIN/tld/lib";\
        version:Version="${Bundle-Version}"

Не забудьте также экспортировать соответствующие пакеты. Вы можете проверить, как это делают другие библиотеки тегов Liferay. Например, файл asset-taglib.

Со стороны потребительского пакета у вас есть 2 варианта:

  1. Если вы используете рабочее пространство Liferay (или соответствующие плагины BND), вы можете просто добавить
   -jsp: *.jsp,*.jspf

инструкция в вашем bnd.bndфайл. Это сообщит о запуске плагина BND, который сгенерирует необходимые требования.

  1. Если вы не используете этот инструмент, вам нужно будет добавить требование вручную:
Require-Capability:\
    osgi.extender;\
        filter:="(&(osgi.extender=jsp.taglib)(uri=http://YOUR_DOMAIN/tld/lib))"
Другие вопросы по тегам