Liferay 以编程方式添加portlet

Liferay 以编程方式添加portlet,liferay,portlet,Liferay,Portlet,是否可以通过编程方式添加portlet?如果是,请帮助我了解相关步骤。Liferay CE附带“sevencogs挂钩”,其中包含设置演示内容的代码,例如用于演示Liferay站点的“七个齿轮”虚拟公司。这将以编程方式设置一个完整的站点。您可以阅读这些代码,了解用户和页面是如何创建的,portlet是如何添加到页面并配置为显示它们应该显示的内容的。更重要的是:它运行的代码很容易阅读,而且作为副作用,它是一个很好的文档 登录:“来宾”,无密码 或者下载所指版本的源代码。类似于: ThemeDis

是否可以通过编程方式添加portlet?如果是,请帮助我了解相关步骤。

Liferay CE附带“sevencogs挂钩”,其中包含设置演示内容的代码,例如用于演示Liferay站点的“七个齿轮”虚拟公司。这将以编程方式设置一个完整的站点。您可以阅读这些代码,了解用户和页面是如何创建的,portlet是如何添加到页面并配置为显示它们应该显示的内容的。更重要的是:它运行的代码很容易阅读,而且作为副作用,它是一个很好的文档

登录:“来宾”,无密码

或者下载所指版本的源代码。

类似于:

ThemeDisplay-ThemeDisplay=(ThemeDisplay)request.getAttribute(WebKeys.THEME\u DISPLAY);
Layout Layout=themeDisplay.getLayout();
long plid=layout.getPlid();
long ownerId=PortletKeys.PREFS\u OWNER\u ID\u默认值;
int ownerType=PortletKeys.PREFS\u OWNER\u TYPE\u布局;
long companyId=themeDisplay.getCompanyId();
String portletIdInc=layoutTypePortlet.addPortletId(userId,thisPortletID);
//检索刚刚创建的portlet首选项portlet实例
PortletPreferences prefs=PortletPreferencesLocalServiceUtil
.getPreferences(companyId、ownerId、ownerType、plid、portletidic);
//设置所需的语言
String languageId=LanguageUtil.getLanguageId(请求);
字符串urlImage=;
setValue(“portlet设置标题-”+languageId,report.getName());
setValue(“portlet设置使用自定义标题”,“true”);
prefs.setValue(“src”,report.getUrl());
prefs.setValue(“img”,urlImage);
prefs.store();
字符串targetColumn=“column-1”;
//更新portlet首选项
PortletPreferencesLocalServiceUtil.updatePreferences(ownerId,
所有者类型、plid、portletIdInc、prefs);
if(Validator.isNotNull(targetColumn)和&Validator.isNotNull(portletIdInc)){
movePortletId(userId,portletIdInc,targetColumn,2);
}
LayoutServiceUtil.updateLayout(layout.getGroupId(),layout.isPrivateLayout(),
layout.getLayoutId(),layout.getTypeSettings();

谢谢奥拉夫。我会试试看