Навигация по страницам портлета с параметрами - Spring MVC, WebSphere Portal и JSR 286 - PullRequest
5 голосов
/ 04 марта 2010

Вот сценарий: У нас есть приложение, работающее на Webphere Portal Server 6.1 и Spring MVC. Есть страница с одним портлетом, которая показывает сетку, полную записей. После щелчка по одной из этих записей она должна перейти к другому портлету, который находится на другой странице - возможно, даже в другом приложении с портлетами на том же сервере портала, - и отобразить эту конкретную запись.

Вот вопрос: Я читал, что с помощью «Публичных параметров рендеринга» в Portal 2.0 вы можете обмениваться данными между портлетами - и это должно решить большинство моих проблем. Проблема в том, что я не могу найти, как это работает при использовании Spring MVC. Я не могу найти ссылку на «Public Render Parameters» в весенней технической документации MVC, но некоторые люди говорят, что она работает. Может ли кто-нибудь показать мне, где находится подробная документация по этому вопросу, или дать небольшой фрагмент кода, который показывает, как я могу получить доступ к этим общедоступным параметрам рендеринга в моих классах контроллера? Кроме того, если есть лучший способ добиться этого в моей среде, что это такое и где я могу найти пример? Пожалуйста, не отвечайте: « Если вам нужно сделать это, вам не следует использовать портал » или «. Если вы используете вместо этого технологию XYZ, то вы можете делать то и это ». Я не могу изменить окружающую среду - это то, что она есть - мне просто нужно, чтобы она работала! :) Спасибо!

1 Ответ

3 голосов
/ 09 марта 2010

Вы можете использовать публичные параметры рендеринга так же, как и свои собственные. параметры рендеринга. Вы просто должны объявить их в своем portlet.xml. Просто помните, что вам не разрешено иметь публичные параметры рендеринга, которые имеют то же имя, что и «частные» параметры рендеринга.

Вам нужно всего лишь добавить что-то подобное в ваш portlet.xml:

<public-render-parameter>
      <identifier>myParam</identifier>
      <qname xmlns:x="http://sun.com/params">x:myParam</qname>
</public-render-parameter>

и добавьте следующую строку в ваш дескриптор портлета:

<portlet>
      . . .
     <supported-public-render-parameter>myParam</supported-public-render-parameter>
</portlet>

Затем вы можете использовать обычные вызовы getRenderParameter для myParam во всех портлетах, которые имеют эту запись в своем дескрипторе портлета.

Для получения дополнительной информации: http://blogs.oracle.com/deepakg/entry/jsr286_public_render_parameter_feature

...