Я хочу получить некоторые данные из своего пользовательского портлета и поместить их в метатеги в portal_normal.ftl . Я пробовал это:
<#if (renderRequest.getAttribute("something"))??>
<#assign urlImg = renderRequest.getAttribute("something")/>
<#else>
<#assign urlImg = "defaultturl"/>
</#if>
, но я всегда получаю null. Возможно, мой портлет загружается после темы и никогда не получит доступ к этим данным. У вас есть идеи, как это решить? Спасибо!
Пользовательский портлет редко предоставляет данные для темы. Кроме того, я не уверен, будет ли это тот же объект запроса в теме, что и в вашем портлете, потому что некоторые объекты, связанные с запросом (сеанс и т. д.), обычно относятся к портлету (не совместно используемому).
Вам лучше использовать Theme Context Contributor
, как описано в этом руководстве Liferay: Участники контекста DXP. При использовании TYPE_THEME
и реализации интерфейса вы можете добавлять данные в шаблон темы.
Спасибо! Theme Context Contributor работает очень хорошо: D
Действительно: RenderRequest — это ПортлетRequest, поэтому для каждого портлета существует свой RenderRequest, но не для других портлетов, т.е. тема