gpt4 book ai didi

javascript - JavaScript 中的 Liferay.PortletURL 创建带有/c/portal/layout 的 URL

转载 作者:行者123 更新时间:2023-11-27 23:39:42 25 4
gpt4 key购买 nike

我正在使用 Liferay 6.2 CE。我想用 Javascript 创建一个 portlet URL。这是我的代码:

<aui:script use="liferay-util-window,liferay-portlet-url">
var portletURL = Liferay.PortletURL.createRenderURL();
portletURL.setParameter('action', 'detailCourse');
portletURL.setParameter('id', 10);
console.log("render = " + portletURL.toString());
</aui:script>

portletURL.toString() 结果:

http://localhost:8080/c/portal/layout?p_l_id=29913&p_p_lifecycle=0&_undefined_action=detailCourse&_undefined_id=19

但它应该看起来像这样:

http://localhost:8080/group/backdoor/home?p_p_id=classlistbackdoor_WAR_classlistbackdoor100SNAPSHOT&p_p_lifecycle=0&p_p_state=normal&p_p_mode=view&p_p_col_id=column-1&p_p_col_count=1&_classlistbackdoor_WAR_classlistbackdoor100SNAPSHOT_id=10&_classlistbackdoor_WAR_classlistbackdoor100SNAPSHOT_action=detailCourse

知道出了什么问题吗?

最佳答案

根据Creating Portlet URLs in JavaScript Liferay 6.2 中对此进行了更改:

After the fix for the security issue, generating friendly portlet URLs via JavaScript is no longer possible.

但是给出了一个可行的解决方案(至少对于 JSP):

var portletURL = Liferay.PortletURL.createURL(
'<%= PortletURLFactoryUtil.create(request,
portletId,
themeDisplay.getPlid(),
PortletRequest.RENDER_PHASE) %>');

关于javascript - JavaScript 中的 Liferay.PortletURL 创建带有/c/portal/layout 的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33795003/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com