2012-09-10 143 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> 

兩個會得到正確的答案。非常感謝。我會在一段時間內發佈關於從掛鉤發送密碼的另一個問題,並且如果密碼正確或不存在,則在同一頁面上驗證,如果是,則會顯示內容。

如果你能幫助我,我會感激。