如何从Liferay

时间:2017-09-18 10:07:42

标签: java liferay liferay-7

我有一个在Liferay中开发的portlet,我希望从URL中获取查询参数值。

我试过这种方式,但得到了#34; null" Query参数的值:

HttpServletRequest httpReq = PortalUtil.getHttpServletRequest(request);
HttpServletRequest httpOrigReq = PortalUtil.getOriginalServletRequest(httpReq);
String myValue = httpOrigReq.getParameter("idProcessOrigin");

非常感谢任何建议!

1 个答案:

答案 0 :(得分:3)

您在问题中提到的代码应该工作,但是,它忽略了portlet环境的特性。通常,在portlet中,您宁愿用<portlet:namespace/>“装饰”参数的名称(或者您选择的UI库中的等效项是这个JSP标记)。您不必提交参数"idProcessOrigin",而是提交"<portlet:namespace/>idProcessOrigin"(当然,使用正确替换的命名空间,例如SOME_RANDOM_STUFF_idProcessOrigin

如果您不想这样做,您还可以在portlet- @ Component的属性列表(as carried over from liferay-portlet.xml)中声明属性com.liferay.portlet.requires-namespaced-parameters=<boolean>

对于从portlet请求获取参数的标准方法,您根本不需要完成HttpServletRequest - 只需使用PortletRequest的{​​{1}}方法。但是,此方法的结果取决于正确修饰的参数名称(或上面提到的停用选项)。注意:当您致电getParameter时,如果request.getParameter("idProcessOrigin")是PortletRequest而不是HttpServletRequest,则不再需要装饰。