Как создать библиотеку тегов в Liferay 7.2? - PullRequest
1 голос
/ 25 сентября 2019

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

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

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

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

1 Ответ

1 голос
/ 25 сентября 2019

Библиотеки тегов не являются специальными модулями 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, который будет генерировать необходимые требования.

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