如何从Liferay portlet中的URL获取参数?

May*_*tel 3 java portlet jsr168 liferay

我在Liferay 6中使用了像feed.jspf这样的开箱即用portlet的jsp:

String articleId =null;
HttpServletRequest httpReq = PortalUtil.getOriginalServletRequest(PortalUtil.getHttpServletRequest(renderRequest));
articleId = httpReq.getParameter("articleId");
Run Code Online (Sandbox Code Playgroud)

无论是在自定义portlet还是在.jsp文件中,它都给出一个空值,但它应该有一个值.

FoX*_*FoX 10

当然,您始终可以使用标准的HttpServletRequest来检索您的参数.您可以使用PortalUtil类获取此请求,如下例所示:

HttpServletRequest request = PortalUtil.getHttpServletRequest(portletRequest);
String articleId = request.getParameter("articleId");
Run Code Online (Sandbox Code Playgroud)


knb*_*knb 8

在我的Liferay- JSP中,我用它:

<!-- ... some imports... -->
<!-- ... some more imports... -->
<%@ page import="com.liferay.portal.util.PortalUtil" %>

<portlet:defineObjects /> <!-- Liferay-specific, defines renderRequest etc.-->

<%
    HttpServletRequest r = PortalUtil.getHttpServletRequest(renderRequest);
    String wellHole =  PortalUtil.getOriginalServletRequest(r).getParameter("well_hole");

%>
Run Code Online (Sandbox Code Playgroud)

(这结合了其他答案的智慧片段,特别是MiguelGilMartínez的答案,2012年7月23日17:35