2016-02-09 70 views
0

我在Liferay中創建了一個網站資源的自定義字段,它是具有默認值的簡單文本值。我想在我的自定義portlet中顯示它。Expando在Liferay中的使用

我讀過,我們將使用ExpandoBridge API來獲取自定義字段值,但我完全困惑。我們可以使用提供給Expando的LocalServiceUtil類來獲取值嗎?

任何幫助,將不勝感激。我是Liferay的新手。

long classNameId = ClassNameLocalServiceUtil.getClassNameId(Sites.class.getName()); 
    ThemeDisplay themeDisplay =(ThemeDisplay)renderRequest.getAttribute(WebKeys.THEME_DISPLAY);  
    String columnName = "Org. Tag Line";// key 
    String tableName = "CUSTOM_FIELDS"; 
    long siteId = themeDisplay.getSiteGroupId();// userId=classPK 
    ExpandoValue expandoObiect=ExpandoValueLocalServiceUtil.getValue(themeDisplay.getCompanyId(), classNameId, tableName, columnName, userId); 
    ExpandoValue expandoObiect=ExpandoValueLocalServiceUtil.getValue(companyId, className, tableName, columnName, classPK) 
    String value=expandoObiect.getData(); 
    renderRequest.setAttribute("tagLine", value); 
    System.out.println("Field value==>"+value); 

回答

1

您可以簡單地從組對象中獲取它。 從themeDisplay對象獲取網站組像themeDisplay.getSiteGroup()

而且您可以通過下面的代碼從組中獲取自定義屬性值。

Group siteGroup=themeDisplay.getSiteGroup(); 
String value =(String)siteGroup.getExpandoBridge().getAttribute("custom-field-name"); 

HTH