2015-05-07 74 views
0

我目前正在使用liferay 6.2,但我有問題要爲動態數據列表創建顯示模板。我試圖按照本指南:爲動態數據列表創建速度模板(Liferay 6.2)

https://dev.liferay.com/discover/portal/-/knowledge_base/6-2/make-it-pretty-creating-custom-displays#display-templates

但FreeMarker的例子不工作。我試圖創造速度的模板(因爲我比FreeMarker的更多頗有基礎):

到目前爲止我的代碼是:

<h1>Title</h1> 

#set($DDLRecordLocalService = $serviceLocator.findService("com.liferay.portlet.dynamicdatalists.service.DDLRecordLocalService")) 
#set ($records = $DDLRecordLocalService.getRecords("TitoloDeEmprego")) 

#if(!$records.isEmpty()) 
    <h1>$records.getFieldValue("TitoloDeEmprego")</h1> 
#end 

,但我不能從$得到任何記錄

回答

3

首先,您必須允許您的Freemarker/Velocity模板訪問serviceLocator變量。爲了做到這一點,你需要把下面的行放在portal-ext.properties

# Freemarker template settings 
freemarker.engine.restricted.variables= 

,我認爲這是原因,但如果你有任何其他的問題,這是簡單的Freemarker DDL顯示模板,適用於我:

<#assign DDLRecordLocalService = serviceLocator.findService("com.liferay.portlet.dynamicdatalists.service.DDLRecordLocalService")> 
<#assign records = DDLRecordLocalService.getRecords(reserved_record_set_id)> 

<#if records?has_content> 
    <ul> 
     <#list records as cur_record> 
      <li> 
       <a href="${ddmUtil.getDisplayFieldValue(themeDisplay, cur_record.getFieldValue("someLinkFieldName", locale), cur_record.getFieldType("someLinkFieldName"))}"> 
        <img src="${ddmUtil.getDisplayFieldValue(themeDisplay, cur_record.getFieldValue("someImageFieldName", locale), cur_record.getFieldType("someImageFieldName"))}" /> 
       </a> 
      </li> 
     </#list> 
    </ul> 
</#if> 
+0

在我的portal.properties已經是「freemarker.engine.restricted.variables = serviceLocator」行。我嘗試了你所擁有的代碼模板,但它也不起作用,它在讀取「服務定位符 – Matias

+0

是的時候給了我一個錯誤,因爲在'='符號之後應該沒有任何內容,並且您仍然有'servicelocator ' –

+0

如果你仍然想使用它,你應該做同樣的速度,設置「velocity.engine.restricted.variables =」 –