通过JournalStructureLocalServiceUtil Liferay获取结构名称

时间:2012-09-10 20:41:50

标签: java liferay liferay-6

我正在尝试获取页面结构名称。我做了钩子并写了检查每个页面结构名称。

我使用JournalStructureLocalServiceUtil.getStructure()但它没有用,并且给了我错误,当我使用JournalStructureLocalServiceUtil.getStructures()时,它给了我结果

[{uuid=6e12b579-c03e-4bd1-a4b3-45c6259807c7, id=10802,groupId=88, 
companyId=1, userId=2, userName=Haider Ghaleb, createDate=Wed Sep 05 12:23:43 GMT 
2012, modifiedDate=Mon Sep 10 16:23:46 GMT 2012, structureId=10801, 
parentStructureId=, name=Restriction, description=Testing testing, xsd= }]

在这里我可以找到结构名称“限制”。任何人都可以帮助我,我也用过

BeanParamUtil.getString(article, request, "structureId")
BeanParamUtil.getLong(article, request, "groupId", scopeGroupId)

获取结构ID和组ID。

2 个答案:

答案 0 :(得分:1)

你几乎在那里得到了结构的名字!请尝试以下代码:

String structureName = JournalStructureLocalServiceUtil.getStructure(groupId, structureId).getName(Locale.US, true);

其中“groupId”和“structureId”是您通过BeanParamUtil或Prakash建议的那些(并且它也是更好的方式):

String structureId = article.getStructureId();
long groupId = article.getGroupId();

getName(Locale.US, true);的部分将获得具有美国区域设置的结构名称,或者如果没有美国区域设置的部分,则会返回默认的区域设置版本。

这应该适合你。

答案 1 :(得分:1)

谢谢@Jonny,现在我们有两种获取结构名称的方法

第一种方法(你的):

<%
String structureId2 = article.getStructureId();
long groupId2 = article.getGroupId();
String structureName = JournalStructureLocalServiceUtil.getStructure(groupId2, structureId2).getName(Locale.US, true);
%>
<h3>Structure Name 2="<%= structureName %>"</h3>

第二种方法(我的):

<%
String structureId= BeanParamUtil.getString(article, request, "structureId");
long groupId1 = BeanParamUtil.getLong(article, request, "groupId", scopeGroupId);
JournalStructure js=(JournalStructure)JournalStructureLocalServiceUtil.getStructure(groupId1, structureId);
%>
<h2>Structure Name="<%= js.getName() %>"</h2>

两者都能得到正确的答案。非常感谢。我将在一段时间内发布另一个关于从钩子发送密码的问题,如果密码正确或没有,则在同一页面上验证,如果是,则会显示内容。

如果你能提供帮助,我将不胜感激。