如何从 portlet 检索数据到 portal_normal.flt - Liferay

Posted

技术标签:

【中文标题】如何从 portlet 检索数据到 portal_normal.flt - Liferay【英文标题】:How to retrieve data from portlet to portal_normal.flt - Liferay 【发布时间】:2019-11-18 05:30:32 【问题描述】:

我想从我的自定义 portlet 中检索一些数据并将其放入 portal_normal.ftl 中的元标记中。 我试过这个:

<#if (renderRequest.getAttribute("something"))??>
            <#assign urlImg = renderRequest.getAttribute("something")/>
        <#else>
            <#assign urlImg = "defaultturl"/>
        </#if>

,但我总是得到空值。可能我的 portlet 是在主题之后加载的,它永远不会访问这些数据。 你知道如何解决它吗? 谢谢!

【问题讨论】:

【参考方案1】:

自定义 Portlet 为主题提供数据并不常见。另外,我不确定主题中的请求对象是否与您的 Portlet 中的相同,因为某些与请求相关的对象(会话等)通常是 Portlet 的范围(未共享)。

您应该使用 Theme Context Contributor,如 Liferay 教程中所述:DXP context-contributors。在使用TYPE_THEME并实现接口时,您可以将数据添加到您的主题模板中。

【讨论】:

确实:RenderRequest 是一个 PortletRequest,因此每个 Portlet 都有不同的 RenderRequest,但对于非 Portlet 则没有,例如一个主题 谢谢!主题上下文贡献者工作得很好:D

以上是关于如何从 portlet 检索数据到 portal_normal.flt - Liferay的主要内容,如果未能解决你的问题,请参考以下文章

在 WebSphere Portal Portlet 中获取来自自定义 @proceesAction 的响应

如何用最暴力的方法改写Liferay的原生portlet

怎样利用jetspeed进行2次开发

Java Portlet 规范概述

如何将值从 ajax 传递到 portlet 页面

如何链接到另一个 liferay 页面