Получить открытый параметр рендеринга из OrignalParameterMap в renderRequest - PullRequest
0 голосов
/ 14 декабря 2011

Я передал параметр рендеринга из одного портлета в другой с помощью удобной навигации по URL.

response.setRenderParameter("params", renderParams);
response.sendRedirect(response.encodeURL("/wps/myportal/Home/abcPortlet"), "params");

Здесь Home и abcPortlet - это удобные имена страниц для определенных страниц.

Во время отладки я обнаружил, что OriginalParameterMap содержит параметр рендеринга в своем URL.

Может кто-нибудь сказать мне, как его получить?Как обычно методы получения не могут получить это значение.

1 Ответ

2 голосов
/ 19 декабря 2011

Нельзя передать render parameters из одного портлета в другой.Это должен быть параметр общего рендеринга (PRP).Подход к настройке PRP такой же, как и для параметра вывода, но оба портлета должны согласиться с тем, что они поддерживают этот PRP.Для этого вам нужно зарегистрировать поддерживаемые PRP в файле portlet.xml обоих портлетов.Пожалуйста, обратитесь к этой ссылке для получения дополнительной информации. Это то, на чем настаивают спецификации.Представьте себе сценарий, в котором у нас есть несколько портлетов от разных поставщиков на странице портала.Это проблема безопасности, если один портлет может извлечь параметры из URL-адреса, даже если он не предназначен для этого портлета.

Другой подход (который не рекомендуется) состоит в том, чтобы вводить регистр от RenderRequest до * 1008.* и получить параметр из запроса.В спецификации не упоминается, что PortletRequest должно быть HttpServletRequest.Так что лучше этого не делать.Дальнейшая реализация Portal может изменить это.

Третий подход заключается в использовании API генерации URL-адресов и создании URL-адреса, параметры которого предназначены для портлета.Вы можете обратиться к ссылке ниже, которая имеет несколько вспомогательных классов.Это упростит вашу работу. Расширенные классы помощника по генерации URL

Лучший способ - использовать PRP.Портлет-источник и целевой портлет слабо связаны.

...