如何从jsp或portlet类的渲染阶段删除Public render参数

时间:2019-03-27 06:18:52

标签: liferay-6.2

我有两个portlet: 1. Blog Portlet。 2.作者Portlet。

  • 我使用Public render参数的概念将数据(例如键“ urlTitle”)从Blog portlet发送到Author portlet
  • 但是从Blog portlet发送“ urlTitle”后,如何从Public render参数中删除数据
In Blog Portlet
EX code: view.jsp

<portlet:renderURL var="viewEntryURL">
    <portlet:param name="struts_action" value="/blogs/view_entry" />
    <portlet:param name="redirect" value="<%= currentURL %>" />
    <portlet:param name="urlTitle" value="<%= entry.getUrlTitle() %>" />
</portlet:renderURL>

<a href="${viewEntryURL}">Send Data</a>

现在,如何在发送数据后从公共渲染参数中删除“ urlTitle”。

请提供反馈。 -预先感谢

2 个答案:

答案 0 :(得分:0)

您可以考虑以下几点:

LiferayPortletURL(为portlet呈现,操作和资源URL标签建模的类)提供了一种名为setCopyCurrentRenderParameters的方法

https://docs.liferay.com/portal/6.2/javadocs/com/liferay/portal/kernel/portlet/LiferayPortletURL.html#setCopyCurrentRenderParameters(boolean)

设置为false时,避免复制渲染参数,并且从中“清除” URL。

需要注意的是,您需要在后端创建LiferayPortletURL并执行以下操作:

    LiferayPortletURL renderUrl = PortletURLFactoryUtil.create(
            httpServletRequest,
            themeDisplay.getPortletDisplay().getId(),
            themeDisplay.getPlid(),
            PortletRequest.RENDER_PHASE);
    renderUrl.setCopyCurrentRenderParameters(false);

,然后将其作为属性传递给您的JSP设置(也许是renderRequest.setAttribute(“ renderUrl”,renderUrl)?)。对于渲染URL,我还没有做到这一点,但是对于资源URL,它确实有效!

答案 1 :(得分:0)

您需要设置

javax.portlet.init-param.copy-request-parameters=false 

在您的portlet类中。