Sightly (HTL) Список итераций

Как перебрать массив значений String в Sightly?

Используя мой бэкэнд-класс Java, я возвращаю ArrayList в Sightly. Как мне перебрать и отобразить их?

3 ответа

Вы можете использовать data-sly-list или же data-sly-repeat перебирать коллекции / итерации в HTL. Они оба работают одинаково с той лишь разницей, data-sly-repeat не требует контейнера, тогда как data-sly-list требует одного.

Использование:

Способ 1

<ul data-sly-list="${someList}">
    <li>${item}</li>
</ul>

Способ 2

<ul>
    <li data-sly-repeat="${someList}">${item}</li>
</ul>

Оба из которых производят тот же результат, как показано ниже

<ul>
    <li>item1</li>
    <li>item2</li>
    <li>item3</li>
</ul>

Подробнее о заявлениях блоков HTL можно найти здесь

Ты можешь попробовать data-sly-list?

Пример:

<ul data-sly-list.myitem="${mylist}" data-sly-unwrap>
  <li>${myitem}</li>
</ul>

data-sly-list использует контейнер, такой как Пожалуйста, посмотрите пример для лучшего понимания.

У меня ниже списка

test1
test2
test3
test4

<div data-sly-list="${ currentPage.listChildren }">
      ${item.name}
</div>

Вывод будет сгенерирован как -

test1 test2 test3 test4

И когда вы просматриваете структуру элемента HTML в вашем отладчике, то это будет -

<div>
   Test1
   Test2
   Test3
   Test4
<div>

Теперь используйте data-sly-repeat–

<div data-sly-repeat="${ currentPage.listChildren }">
      ${item.name}
</div>

Вывод будет - XHTML

test1
test2
test3
test4
Другие вопросы по тегам