воскресенье, 16 сентября 2012 г.

Структура портлета

1. Должен присутствовать обязательно класс реализующий портлет апи.
2. Дескриптор portlet.xml. Он определяет какой же все-таки класс реализует портлет апи( или интерфейс javax.portlet.Portlet или уже его реализацию абстрактный класс  javax.portlet.GenericPortlet); какие связки ресурсов у нас есть(файлы ленгов) и где они находятся; определяются также моды портлета и их майм-типы.
3. web.xml- это деплоймент дескриптор определяющий веб-ресурсы (сервлеты и подобное), которые будут выполнятся в этом приложении, но не класс-портлет.

portlet.xml имеет вот такой интересный тег portlet-app>support он поддерживает два тега-детей mime-type и portlet-mode

Так вот у портлета может быть три режима, ориентируясь на которые мы можем выводить разный контент в респонс:

  • VIEW
  • EDIT
  • HELP
Файл ленгов. Кстати в случае лайфрея, как портала, у нас есть уже ряд предопределенных имен для параметров локали, которые лайфрей попытается найти в ленг-файле. Например титл портлета определяется параметром javax.portlet.title
Кстати имя ленг-файла Languages-ext.properties, а конкретной локали Languages-ext_{LOCAL}.properties. Из чего у меня по крайней мере возникает вопрос зачем там вставка ext?
Так вот эта вставка означает что это файл расширение, что означает, что есть где-то и оригинальный, параметры которого мы этим файлом перегружаем или создаем новые параметры. Называется он( понятно также, но без вставки), находится вот где на сервере:
{TOMCAT_HOME}\webapps\ROOT\WEB-INF\lib\portal-impl.jar#Language.properties 


Есть также дескрипторы индивидуально лайфреевские, а не спецификации портлетс 2.0.

liferay-display.xml - определяет категорию в которой будет находится наш новосоздаваемый портелет, можна указывать как существующие категории, которые названы в Languages.properties, либо новосозданные, которые находятся в Languages-ext.properties
<display>
  < category name="category.chapter01.helloWorld">
    < portlet id="HelloWorldPortlet" />
  < /category>
< /display>
liferay-portlet.xml - тоже самое что портлетс.хмл + фичи, характерные только для лайфрея: Вот два нововведенных тега:
<instanceable>true</instanceable>
<remoteable>true</remoteable>
Последний говорит, что портлет выставляется удаленным WSRP producer(Web Services for Remote Portlets).

Комментариев нет:

Отправить комментарий