2010-03-04 3 views
5

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

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

ответ

3

Вы можете использовать общедоступные параметры визуализации так же, как вы используете собственные параметры визуализации . Вам просто нужно объявить их в своем портлете.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

+0

Да - я думаю, что это будет работать. Моя путаница возникла с моделью для контроллеров, основанной на аннотациях, потому что вы не наследуете от класса или не выполняете интерфейс. Понимая некоторые примеры в сочетании с вашим примером, я понимаю. Еще раз спасибо за помощь неопытным разработчикам портлетов! Существует около 16 java-фреймворков, которые мы используем в транзакционном приложении на основе SOA на основе транзакций. Это много, чтобы зайти с фона .net! –

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