将参数传递给liferay portlet

时间:2015-10-06 15:22:27

标签: html liferay liferay-6

我设计了一个包含单个portlet的网页。 我想将参数传递给此portlet。 所以我以这种方式调用我的网页(在本地的liferay实例上): http://localhost:8080/group/ /?PARAM = 1

为了避免误解,我不只是尝试在portlet的页面之间传递参数(控制器来查看)。我知道怎么做,它工作正常。 在这种情况下,我试图用托管它的URL中的参数启动我的portlet。

我对文档的理解是portlet无法访问URL参数 我读到的建议解决方案是使用" friendly-url-mapper"。

我无法让它发挥作用。这是我到目前为止所做的:

我添加到了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>

查看正确的值来设置吗?真正怀疑它。

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

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

/ result被映射到我的控制器类的result.jsp页面(这部分有效):

我希望如此: http://localhost:8080/group/ /?PARAM = 和/或 http://localhost:8080/group/ // - ?/视图/ PARAM = 会使用?param =参数重定向到我的result.jsp。

我没有正确理解的是什么?

1 个答案:

答案 0 :(得分:3)

好的,你可以而且你不能,但基本上你不应该,但我没有人告诉你你应该做什么,不该做什么。

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

HttpServletRequest httpReq = PortalUtil.getOriginalServletRequest(PortalUtil.getHttpServletRequest(req));

然后您可以使用getParameter获取所需的参数 方法

String myParam = httpReq.getParameter("param");

希望这有帮助