Установка параметра из портлета URl в HttpServletRequest

Я имею в виду URL, который имеет paramID из моего портлета. Содержимое этого paramID обрабатывается в другом портлете и имеет собственный контроллер.

Этот контроллер принимает HttpServletRequest для чтения этого параметра.

HttpServletRequest request = PortalUtil.getOriginalServletRequest(PortalUtil.getHttpServletRequest(renderRequest));
String paramID= request.getParameter("paramID");`

Мой параметр в URL http://mysite.com?paramID=123

Будет ли HttpServletRequest читать этот параметр, когда я звоню с использованием renderURL

<liferay-portlet:renderURL var="xyz" portletName="ABC" windowState="Normal"/>
...
<a href="xyz?pramID"> Click here</a>

2 ответа

Решение

Я сделал это с предоставлением значения параметра во время вызова renderURL

<liferay-portlet:renderURL var="xyz" portletName="ABC" windowState="Normal"/>
</liferay-portlet:renderURL>

.....

<JAVASCRIPT>
   var URL = NULL;       
   function(called){
          URL = "${xyz}&paramID=123"              //and this was read as servlet param
   }
</JAVASCRIPT>

Некоторая информация о URL рендеринга и тому подобное находится под этим вопросом в ответе вики на его сообщество.

Также в каком-то уроке, которого нет в сети, я читал, что этот тип передачи параметров проще всего сделать через сессию. Сессия является общей для портлетов и сервлетов, поэтому вам не нужно думать, где какой параметр виден, а где нет.

Другие вопросы по тегам