我正在尝试添加一个指向速度模板的链接,该模板调用可实例化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名称(ia9r3lKTG3YL
)来获取实例id(displayportlet_WAR_myportlets
),还是我真的需要对其进行硬编码?此模板用于同一站点的多个实例,并且每个站点上的实例ID都不同。
答案 0 :(得分:1)
不是硬编码portlet ID,而是值得在liferay中使用友好URL映射概念进行尝试。 使用这个概念,动态注入portlet ID,并且在port中使用URL到portlet更加简单。
http://www.liferay.com/en_GB/community/wiki/-/wiki/Main/FriendlyURLMapper
希望这有帮助。
答案 1 :(得分:1)
对于仍在寻找答案的人,您可以使用$ themeDisplay变量在Velocity模板中获取您的portlet实例ID:
$themeDisplay.getPortletDisplay().getId();
希望这有帮助。