Html 将参数传递给liferay portlet

Html 将参数传递给liferay portlet,html,liferay,liferay-6,Html,Liferay,Liferay 6,我用一个portlet设计了一个网页。 我想将参数传递给这个portlet。 因此,我以这种方式调用我的网页(在本地liferay实例上): /?参数=1 为了避免误解,我不只是尝试在portlet的页面之间传递参数(要查看的控制器)。我知道怎么做,而且效果很好。 在本例中,我尝试使用托管portlet的URL中的参数启动portlet 我从文档中了解到,portlet无法访问URL参数 我读到的建议解决方案是使用“友好的url映射器” 我没能让它工作。以下是我迄今为止所做的: 我在lifera

我用一个portlet设计了一个网页。 我想将参数传递给这个portlet。 因此,我以这种方式调用我的网页(在本地liferay实例上): /?参数=1

为了避免误解,我不只是尝试在portlet的页面之间传递参数(要查看的控制器)。我知道怎么做,而且效果很好。 在本例中,我尝试使用托管portlet的URL中的参数启动portlet

我从文档中了解到,portlet无法访问URL参数 我读到的建议解决方案是使用“友好的url映射器”

我没能让它工作。以下是我迄今为止所做的:

我在liferay-portlet.xml中添加了:

<friendly-url-mapper-class>com.liferay.portal.kernel.portlet.DefaultFriendlyURLMapper</friendly-url-mapper-class>
<friendly-url-mapping>view</friendly-url-mapping>
<friendly-url-routes>friendly-url-routes-for-parameters.xml</friendly-url-routes>
com.liferay.portal.kernel.portlet.DefaultFriendlyURLMapper
看法
friendly-url-routes-for-parameters.xml
视图是否是要设置的正确值?真的很怀疑

我使用以下内容创建了friendly-url-routes-for-parameters.xml:

<routes>
    <route>
        <pattern>/result?{match}</pattern>
        <implicit-parameter name="param">{match}</implicit-parameter>
    </route>
</routes>

/结果?{match}
{match}
/结果被映射到一个result.jsp页面到我的控制器类中(这部分工作):

我希望: /?参数= 和/或 //-/查看/?参数= 将使用?param=参数重定向到my result.jsp


我没有正确理解什么?

好的,你可以,你不能,但基本上你不应该,但我不是告诉你应该做什么和不应该做什么的人

要获取此参数,您应该做的是获取原始servlet

HttpServletRequest httpReq = PortalUtil.getOriginalServletRequest(PortalUtil.getHttpServletRequest(req));
然后,您可以使用
getParameter
方法


希望这有帮助

您正在生成的URL不正确。它应该是这样的,然后您可以在portlet中使用httpServletRequest获得它。这个答案是一吨泰铢:)
String myParam = httpReq.getParameter("param");