Доступ к параметрам URL в портлете JSR 286?
Есть ли способ получить доступ к параметрам URL в портлете / портале Jetspeed2?
как: www.bla.com/portal/page.psml?param=12345
Я могу найти только некоторые инструменты для liferay (PortalUtil.java) для доступа к httpservletrequest, но, насколько я знаю, для jetspeed такой вещи не существует?
Я думал, что публичные параметры рендеринга могут быть использованы для такой вещи, но я немного запутался здесь? Ни у кого не было этой проблемы раньше?
заранее спасибо:)
2 ответа
Не знаю, работает ли он для jetspeed, но вы можете попробовать получить httprequest следующим образом:
HttpServletRequest httpRequest = (HttpServletRequest) request.getAttribute("javax.servlet.request");
Затем найдите строку запроса в заголовке следующим образом:
String referer = httpRequest.getHeader("referer");
После этого у вас будет полный реферер страниц, чтобы вы могли разобрать строку запроса.
Нашел ответ:
До версии 2.1 Jetspeed объединял параметры запроса портала с параметрами, специфичными для портлета, позволяя эффективно использовать "общие" параметры. Это не соответствует JSR-168 PLT.11, поэтому по умолчанию это теперь отключено.
Установив merge.portal.parameters.with.portlet.parameters=true, эту функцию можно "восстановить". В случае параметров портала и портлета с одним и тем же именем, по умолчанию параметры портлета будут предоставлены первыми в массиве значений, но это также можно изменить, установив merge.portal.parameters.before.portlet.parameters = true
Установка обоих этих свойств в true приведет к "старому" поведению до 2.1. Примечание. Для отдельных портлетов эти глобальные параметры можно переопределить, задав эти свойства в качестве метаданных в jetspeed-portlet.xml.
merge.portal.parameters.with.portlet.parameters = false merge.portal.parameters.before.portlet.parameters = false
Чтобы использовать публичные параметры рендеринга из спецификации 2.0