2012-09-10 99 views
1

我试图获取页面结构名称。我做了钩子和写检查每个页面结构名称。通过JournalStructureLocalServiceUtil获取结构名称Liferay

我用JournalStructureLocalServiceUtil.getStructure(),但它没有工作,给了我的错误,当我使用​​3210它给我的结果

[{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。

+0

“获取页面结构名称”?你的意思是网络内容(即杂志文章)的结构名称? –

+0

是的,我做。这就是我的意思 –

+2

如果你有'article',你可以从文章本身'article.getStructureId()'获得'structureId'和'groupId'。然后使用'JournalStructureLocalServiceUtil'来获取特定的结构。对不起,但我无法理解这是什么问题? –

回答

1

你几乎在那里得到结构的名称!试试下面的代码:

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

哪里“的groupId”和“structureId”是曾建议您通过BeanParamUtil或普拉卡什抓起一(和它也是一种更好的方式):

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

表示getName(Locale.US, true);的部分将获得带有Locale for US的结构名称,或者如果Locale US没有一个,它将返回默认的Locale版本。

这应该对你有用。

1

谢谢@Jonny,现在我们已经得到了结构名称

第一种方法(你的)的2种方法:

<% 
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> 

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

如果你能帮助我,我会感激。