Программирование порталов / портлетов - связывание портлетов / поток страниц - PullRequest
2 голосов
/ 24 апреля 2009

Я пишу свое первое приложение на основе портлетов (для liferay, но решение должно быть независимым от контейнера), и мне интересно, как люди решают предоставлять ссылки пользователю, которые «ведут» на разные портлеты (возможно, на разные «страницы») в портале).

Несмотря на то, что вы можете легко иметь различные режимы просмотра внутри своего портлета, как вы можете ссылаться на другой портлет и (возможно) также передавать параметры вместе?

Я не говорю о простой связи между портлетами, меня интересует реальный поток страниц.

Пример: У вас есть страница A с портлетом, который отображает список новостей. Тогда у вас есть страница B, которая настроена таким образом, что я хотел бы показать один элемент новостей (например, различные портлеты вокруг него)

Существует ли общее решение для ссылки на страницу B и указания порталу news-Detail-Portlet, что он должен показывать элемент XYZ?

Быстрое и грязное решение заключается в настройке целевой ссылки через режим редактирования портлета news-list-portlet. Но это имеет несколько недостатков: - сложные портлеты могут иметь несколько целевых URL, что приводит к огромным усилиям по настройке администратора портала - URL могут не следовать схеме, которая позволяет вводить простые параметры

Я имею в виду решение, но это потребует огромных усилий и, возможно, изменений в целевых портлетах, что не всегда возможно, если вы используете сторонние портлеты.

Мое решение будет выглядеть так: (черновик!)

Портлеты регистрируются в центральной службе со своими идентификаторами портлетов, и когда портлет хочет соединиться с портлетом, он может выполнить поиск на основе символического имени. Это облегчит работу администратора, поскольку возможно автоматическое обнаружение портлетов. Служба также может предоставлять пользовательский интерфейс для связи портлетов на основе исходного и целевого портлетов.

Генерация URL для портлетов, которые могут быть изменены, может быть решена с помощью вызова службы для портлета, который генерирует URL в целом с введенными параметрами и возвращает его. Для портлетов, которые вы не можете изменить, вы должны добавить параметры и надеяться, что это работает. : - /

Есть предложения? Есть ли более простые решения? существующие решения?

Спасибо!

Patrick

Ответы [ 2 ]

1 голос
/ 24 апреля 2009

Насколько я знаю, спецификация портлета не покрывает это. Так что нет портативного решения. Для Liferay вы всегда можете использовать их собственную библиотеку тегов, которая предназначена именно для этой проблемы. Есть аналогичный механизм для Websphere Portal.

Что-то можно найти здесь и здесь

Как правило, я бы попытался избежать этого и использовать стандартный механизм IPC (Public Render Parameters или Events)

0 голосов
/ 24 апреля 2009

Для спецификации JSR 286 можно использовать события для связи между портлетами. Для более раннего JSR 168 не существует одобренного способа сделать это. Если вы найдете способ, который вам подходит, используйте его.

Есть старая книга, бесплатно выданная Мэннинг (требуется регистрация). Вы можете найти некоторые идеи там.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...