我需要通过portlet名称获取资源权限。
我只有portlet的名称而没有ID。
一个portlet的资源权限名称就是它的ID。我查看了Portlet表,它只有ID和其他信息。那么portlet的其他属性将保存在哪里呢?
是否有一种方法可以通过portlet的名称获取其ID?我有一个解决方案,即获取所有的portlet并进行比较,但如果能直接使用portlet的名称获取其ID将会很有帮助。
这个问题很紧急,请知道答案的人回复,将是极大的帮助。
提前感谢您的回复。
我需要通过portlet名称获取资源权限。
我只有portlet的名称而没有ID。
一个portlet的资源权限名称就是它的ID。我查看了Portlet表,它只有ID和其他信息。那么portlet的其他属性将保存在哪里呢?
是否有一种方法可以通过portlet的名称获取其ID?我有一个解决方案,即获取所有的portlet并进行比较,但如果能直接使用portlet的名称获取其ID将会很有帮助。
这个问题很紧急,请知道答案的人回复,将是极大的帮助。
提前感谢您的回复。
<xml中的portletname>_WAR_<servlet上下文名称,即没有特殊字符(如连字符)的war文件>
例如:
如果你的portlet名称在portlet.xml中定义为MyWork
,并且在webapps
文件夹中生成的文件(如果你使用tomcat)是MyWork-portlet
,那么结果Id将是MyWork_WAR_MyWorkportlet
。PortletLocalServiceImpl
的private _readPortletXML
方法。
编辑:friendly-url
),那么您可能会发现这个answer很有帮助。System.out.println("ID : " + themeDisplay.getPortletDisplay().getId());
System.out.println("InstanceID: " + themeDisplay.getPortletDisplay().getInstanceId());
System.out.println("Portlet Name: " + themeDisplay.getPortletDisplay().getPortletName());
不要忘记:
<% ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY);
themeDisplay.getUser().getScreenName(); %>