Для получения параметров URL портлета JSR 168;у вас есть один из трех вариантов (насколько я знаю):
Создание фильтра на уровне сервера приложений Websphere и настройка динамического кэша для хранения строки запроса, после чего вы сможете получитьлюбой параметр, присоединенный к любой сгенерированной ссылке портлета, даже без использования сопоставления URL с учетом размера динамического кэша.
Необходимо захватить параметр на ранней стадии жизненного цикла портлета, котораяназывается "doView" и, приведя RenderRequest к HttpServletRequest, вы сможете получить их из метода getQueryString () (вы не сможете захватить их из метода getParameter в RenderRequest, даже если спецификация упомянула это) и после этого вы можетеотправка на любую страницу в вашем приложении.
Третий способ, если вы пытаетесь сгенерировать ссылку на портлет с помощью тегов URL Generation, вам разрешается добавить параметр к этой ссылке изахватить его в doView так же, как Below:
<wps:urlGeneration contentNode="MyApp.app" portletWindowState="Maximized" newWindow="True">
<wps:urlParam name="MyParam" value="Hi There"/>
<a href="<% wpsURL.write(out); %>" target="_blank" >My Link</a>
</wps:urlGeneration>
public void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException {
HttpServletRequest httpServletRequest = (HttpServletRequest) request;
System.out.println("The parameter is: "+httpServletRequest.getQueryString());
super.doView(request, response);
}
Примечание : полный код жизненного цикла вашего портлетапо умолчанию будет в пакете com.ibm.{your project name}
, и RSA спросит вас, хотите ли вы, чтобы он был доступен или нет в начале создания проекта, и если вы не сделали его доступным, вы все равно можете создать его, переопределив свой <portlet-class>
вашего портлета в portlet.xml
.