Установка параметра из портлета 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}¶mID=123" //and this was read as servlet param
}
</JAVASCRIPT>
Некоторая информация о URL рендеринга и тому подобное находится под этим вопросом в ответе вики на его сообщество.
Также в каком-то уроке, которого нет в сети, я читал, что этот тип передачи параметров проще всего сделать через сессию. Сессия является общей для портлетов и сервлетов, поэтому вам не нужно думать, где какой параметр виден, а где нет.