liferay如何列出要在控制面板菜单中显示的portlet? 任何正文都可以列出所涉及的类和JSP吗?
答案 0 :(得分:1)
请参阅liferay来源中位于\portal-web\docroot\html\portlet\control_panel_menu\view.jsp
您将了解liferay如何显示其控制面板菜单。
Link获取此jsp的代码。
答案 1 :(得分:0)
在部署portlet时,所有portlet都保存在portlet表中。然后,一旦访问控制面板,liferay就会加载所有具有控制面板条目的portlet。有关更好的说明,请参阅
中的以下代码com.liferay.portal.util.PortalImpl
@Override
public Set<Portlet> getControlPanelPortlets(long companyId, String category)
throws SystemException {
Set<Portlet> portletsSet = new TreeSet<Portlet>(
new PortletControlPanelWeightComparator());
if (Validator.isNull(category)) {
return portletsSet;
}
List<Portlet> portletsList = PortletLocalServiceUtil.getPortlets(
companyId);
for (Portlet portlet : portletsList) {
String portletCategory = portlet.getControlPanelEntryCategory();
if (category.equals(portletCategory) ||
(category.endsWith(StringPool.PERIOD) &&
StringUtil.startsWith(portletCategory, category))) {
portletsSet.add(portlet);
}
}
return portletsSet;
}
@Override
public List<Portlet> getControlPanelPortlets(
String category, ThemeDisplay themeDisplay)
throws SystemException {
Set<Portlet> portlets = getControlPanelPortlets(
themeDisplay.getCompanyId(), category);
return filterControlPanelPortlets(portlets, themeDisplay);
}
从
调用上面的代码\portal-web\docroot\html\portlet\control_panel_menu\view.jsp
Map<String, List<Portlet>> siteAdministrationCategoriesMap = PortalUtil.getSiteAdministrationCategoriesMap(request);
pankaj-kathiriya回答的帮助。谢谢你。