2009-04-24 2 views
2

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

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

Я не говорю об простой связи между портлетами, это интересует меня настоящий pageflow.

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

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

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

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

Мое решение будет выглядеть следующим образом: (проект!)

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

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

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

Спасибо!

Патрик

ответ

1

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

Что можно найти here и here

Вообще-то я бы попытаться избежать этого и использовать стандартный механизм IPC (Public Рендер Параметры или события)

+0

Спасибо, так что мне кажется, что я должен написать что-то свое, что использует абстракцию. –

0

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

Существует старая книга, предоставленная бесплатно от Manning (требуется регистрация). Вы можете найти там некоторые идеи.

+0

Как я писал сообщение не проблема, я, возможно, для перехода на другую страницу, которая является основной проблемой. –

+0

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

Смежные вопросы