gpt4 book ai didi

java - 如何从代码中以编程方式删除 Liferay 6.1 中的 portlet

转载 作者:行者123 更新时间:2023-11-29 05:05:41 25 4
gpt4 key购买 nike

我正在使用 Liferay 6.1
我想从我的代码中删除 Liferay 6.1 中的一个 portlet。到目前为止我所做的是:

<a onclick="Liferay.Portlet.close('#p_p_id_28_'); return false;">Remove</a>

以上代码运行良好。但它只在当前页面上工作,即它只能删除当前页面上的 portlet。

但我想使用其布局 ID 删除可能位于我的门户菜单上某个位置的 portlet。

请提出出路。提前致谢。

问候,
瓦伦耆那教

最佳答案

public void removePortlets(ActionRequest request, ActionResponse response)
throws PortletException {
ThemeDisplay themeDisplay = (ThemeDisplay) request
.getAttribute(WebKeys.THEME_DISPLAY);
long groupId = themeDisplay.getScopeGroupId();
String friendlyURL = "/demochildpage";
boolean privateLayout = false;
long userId = themeDisplay.getUserId();
try {
Layout layout = LayoutLocalServiceUtil.getFriendlyURLLayout(
groupId, privateLayout, friendlyURL);
LayoutTypePortlet layoutTypePortlet = (LayoutTypePortlet) layout
.getLayoutType();
layoutTypePortlet.removePortletId(userId, "28");
LayoutLocalServiceUtil.updateLayout(layout.getGroupId(),
layout.getPrivateLayout(), layout.getLayoutId(),
layout.getTypeSettings());
} catch (Exception e) {
e.printStackTrace();
}
}

关于java - 如何从代码中以编程方式删除 Liferay 6.1 中的 portlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30456078/

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