1

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

我用过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= }]

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

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

获取结构ID和组ID。

4

2 回答 2

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);将获得具有美国语言环境的结构名称,或者如果没有美国语言环境,它将返回默认的语言环境版本。

这应该为您解决问题。

于 2012-09-12T07:24:32.030 回答
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>

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

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

于 2012-09-12T09:06:31.713 回答