如何在 Velocity 模板中获取 Liferay Portlet 实例 ID
How to get Liferay portlet instance id in velocity template
我正在尝试将 link 添加到调用可实例 portlet 中的操作的速度模板。看起来像这样
<a href="/mypage?p_p_id=displayportlet_WAR_myportlets_INSTANCE_ia9r3lKTG3YL&p_p_lifecycle=0&p_p_state=pop_up&p_p_mode=view&p_p_col_id=column-1&p_p_col_pos=1&p_p_col_count=2&_displayportlet_WAR_myportlets_INSTANCE_ia9r3lKTG3YL_struts.portlet.action=%2Fview%2FdisplayCart">click here</a>
有没有办法使用 javascript 或某些内置函数使用 portlet 名称 (displayportlet_WAR_myportlets
) 获取实例 ID (ia9r3lKTG3YL
),或者我真的必须硬编码它?此模板用于同一站点的多个实例,每个站点上的实例 ID 不同。
与其硬编码 portlet ID,不如尝试在 liferay 中使用友好的 URL 映射概念。
使用这个概念,portlet ID 被动态注入,并且 URL 到 portlet 的使用速度要简单得多。
http://www.liferay.com/en_GB/community/wiki/-/wiki/Main/FriendlyURLMapper
希望对您有所帮助。
对于那些仍在寻找答案的人,您可以使用 $themeDisplay 变量在 Velocity 模板中获取您的 portlet 实例 ID:
$themeDisplay.getPortletDisplay().getId();
希望对您有所帮助。
我正在尝试将 link 添加到调用可实例 portlet 中的操作的速度模板。看起来像这样
<a href="/mypage?p_p_id=displayportlet_WAR_myportlets_INSTANCE_ia9r3lKTG3YL&p_p_lifecycle=0&p_p_state=pop_up&p_p_mode=view&p_p_col_id=column-1&p_p_col_pos=1&p_p_col_count=2&_displayportlet_WAR_myportlets_INSTANCE_ia9r3lKTG3YL_struts.portlet.action=%2Fview%2FdisplayCart">click here</a>
有没有办法使用 javascript 或某些内置函数使用 portlet 名称 (displayportlet_WAR_myportlets
) 获取实例 ID (ia9r3lKTG3YL
),或者我真的必须硬编码它?此模板用于同一站点的多个实例,每个站点上的实例 ID 不同。
与其硬编码 portlet ID,不如尝试在 liferay 中使用友好的 URL 映射概念。 使用这个概念,portlet ID 被动态注入,并且 URL 到 portlet 的使用速度要简单得多。
http://www.liferay.com/en_GB/community/wiki/-/wiki/Main/FriendlyURLMapper
希望对您有所帮助。
对于那些仍在寻找答案的人,您可以使用 $themeDisplay 变量在 Velocity 模板中获取您的 portlet 实例 ID:
$themeDisplay.getPortletDisplay().getId();
希望对您有所帮助。