private static PortletURL createPortletURL(ServletRequest request,
String pageURL, boolean actionURL)
{
RenderResponse renderResponse = (RenderResponse) request
.getAttribute("javax.portlet.response");
PortletURL portletURL;
if (actionURL)
portletURL = renderResponse.createActionURL();
else
portletURL = renderResponse.createRenderURL();
if (request instanceof HttpServletRequest)
{
String contextPath = ((HttpServletRequest) request)
.getContextPath();
if (pageURL.startsWith(contextPath))
pageURL = pageURL.substring(contextPath.length());
}
if (actionURL)
{
portletURL.setParameter(PAGE, pageURL.replaceAll("&","&"));
String originURL = request.getParameter(PAGE);
if (originURL != null)
portletURL.setParameter(ORIGIN, originURL);
}
else
{
RenderRequest renderRequest = (RenderRequest)request.getAttribute("javax.portlet.request");
portletURL.setParameter(PAGE+renderRequest.getPortletMode().toString(), pageURL.replaceAll("&","&"));
}
return portletURL;
}