#liferay #liferay-6 #velocity #freemarker
#liferay #liferay-6 #скорость #freemarker
Вопрос:
В моем шаблоне веб-контента Liferay 6.2 EE у меня есть следующий код freemarker:
<#list teaserHeader.getSiblings() as teaser_header>
<#if getterUtil.getBoolean(teaser_header.teaserVisible.getData())>
<h2 class="section-headline">${teaserHeader.getData()?html}</h2>
<div class="inner-15">
<div class="general-wrapper inner-15-content bound" >
<#if teaser_header.teaserImage.getData() != "">
<div class="product-image-wrapper left">
<img src="${teaser_header.teaserImage.getData()}" width="" height=""/>
</div>
</#if>
<div class="product-teaser-info left">${teaser_header.teaserContent.getData()}</div>
<div class="clearfix"></div>
</div>
</div>
</#if>
</#list>
К сожалению, мы должны переключиться на Velocity.
Каков наилучший подход для преобразования тега списка freemarkers в Velocity?
Я уже принял все остальное (теги if, вызовы методов, …)
Но у меня возникли некоторые проблемы с тегом list.
Я пытался сделать это с помощью foreach в Velocity, но у меня не получилось…
Спасибо
Ответ №1:
В velocity это должно выглядеть примерно так:
#if (!$teaserHeader.getSiblings().isEmpty())
#foreach ($teaser_header in $teaserHeader.getSiblings())
...
#end
#end
Комментарии:
1. Просто вопрос: почему мы должны проверять, пуст ли список siblings? Не удастся ли выполнить итерацию по пустому списку?
2. нет, просто проверяю, есть ли тизерхедер со значением