Как создать библиотеку тегов в 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 варианта:
- Если вы используете рабочее пространство Liferay (или соответствующие плагины BND), вы можете просто добавить
-jsp: *.jsp,*.jspf
инструкция в вашем bnd.bnd
файл. Это сообщит о запуске плагина BND, который сгенерирует необходимые требования.
- Если вы не используете этот инструмент, вам нужно будет добавить требование вручную:
Require-Capability:\
osgi.extender;\
filter:="(&(osgi.extender=jsp.taglib)(uri=http://YOUR_DOMAIN/tld/lib))"