Динамический список данных liferay getfieldvalue для радио и поля выбора содержат мусор

Как удалить лишние [" "] при получении данных DynamicDataList из LifeRay 6.1.30 с помощью DDLRecordLocalService getFieldValue в шаблоне скорости для полей радио или выбора.

Вот моя ВМ:

#set ($ddlRecordsUtil = $serviceLocator.findService("com.liferay.portlet.dynamicdatalists.service.DDLRecordLocalService"))
#set ($records = ${ddlRecordsUtil.getRecords($getterUtil.getLong($reserved_record_set_id.data))})
<ul>
#foreach ($record in $records)
<li>
    $record.getFieldValue("radio1477"), 
    $record.getFieldValue("select2047")
</li>
#end
</ul>

Где радио1477:

<input name="radio1477" value="arf">arf
<input name="radio1477" value="bark">bark
<input name="radio1477" value="woof">woof

и выберите2047

<select name="select2047">
<option value="arf"> arf </option>
<option value="bark"> bark </option>
<option value="woof"> woof </option>
</select>

Возвращает следующий список:

  • ["арф"], ["арф"]
  • ["кора"], ["кора"]
  • ["Гав гав"]

Каков наилучший способ удалить [" "] мусор?


person john nowlin    schedule 24.01.2014    source источник


Ответы (3)


Лучший способ получить значение поля — сначала получить поле, а затем использовать getRenderedValue($locale).

...
#set ($fields = $record.getFields())
#set ($myField = $fields.get("myselect"))
#set ($myValue = $myField.getRenderedValue($locale)
...
person AndreN    schedule 30.10.2015

Не знаю, лучший ли это способ, но он удалил [" "] мусор.

#set($arf = $record.getFieldValue("radio1477"))
#set($arflen = $arf.length() - 2)
#if ($arflen > 2)
    $arf.substring(2, $arflen)
#end
person john nowlin    schedule 27.01.2014

Джон,

Retrieve it from serviceContext; something like this should work.

  • ${serviceContext.getAttribute("$поле")}
  • Итерация по полям отдельных записей

    person Pavan Invincible    schedule 30.01.2014