我正在尝试获取页面结构名称。我做了钩子并写了检查每个页面结构名称。
我使用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。
答案 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>
两者都能得到正确的答案。非常感谢。我将在一段时间内发布另一个关于从钩子发送密码的问题,如果密码正确或没有,则在同一页面上验证,如果是,则会显示内容。
如果你能提供帮助,我将不胜感激。