簡體   English   中英

如何在速度模板中獲取Liferay Portlet實例ID

[英]How to get Liferay portlet instance id in velocity template

我正在嘗試向速度模板添加鏈接,該鏈接在可實例化的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>

有沒有一種方法來獲得實例ID( ia9r3lKTG3YL使用portlet名稱() displayportlet_WAR_myportlets使用JavaScript或一些內置的功能或者我真的要硬編碼)? 該模板用於同一站點的多個實例,並且每個站點上的實例ID不同。

代替對portlet ID進行硬編碼,值得在liferay中使用Friendly URL映射概念進行嘗試。 使用此概念,portlet ID會動態注入,而portlet的URL在速度上要簡單得多。

http://www.liferay.com/en_GB/community/wiki/-/wiki/Main/FriendlyURLMapper

希望這可以幫助。

對於仍在尋找答案的用戶,可以使用$ themeDisplay變量在Velocity模板中獲取portlet實例ID:

$themeDisplay.getPortletDisplay().getId();

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM