Передать массив в качестве аргумента во фрагмент Thymeleaf - PullRequest
0 голосов
/ 10 ноября 2018

Можно ли передать массив фрагменту так:

<div th:replace="fragments :: test_fragment( {'one', 'two', 'three'} )"></div>

И повторяем фрагмент следующим образом:

<div th:fragment="test_fragment(numberArray)">

    <span th:each="number : ${numberArray}" th:text="${number}"></span>

</div>

В качестве бонуса возможны также многомерные массивы?

Я использую Thymeleaf в проекте Spring Boot 2.0.

Ответы [ 2 ]

0 голосов
/ 12 ноября 2018

Я нашел два способа: параметры фрагмента и th: с.

массив параметров фрагмента:

<div th:replace="~{fragments :: test_fragment(arrayX = ${ {'a', 'b'} }) }"></div>

Массив параметров Frag многомерный:

<div th:replace="~{fragments :: test_fragment(arrayX = ${ {{'a1','a2'},{'b1','b2'}} } ) }"></div>

th: с массивом:

<div th:insert="~{fragments :: test_fragment}" th:with="arrayX=${ {'a','b'} }"></div>

th: с многомерным массивом:

<div th:insert="~{fragments :: test_fragment}" th:with="arrayX=${ {{'a1','a2'},{'b1','b2'}} }"></div>

Обратите внимание, что я использовал th: insert , когда я использовал th: with. Это потому, что th: replace заменит строку div и, следовательно, th: with, что делает массив X недоступным.

0 голосов
/ 11 ноября 2018

Да, это возможно. Следующий код должен сделать свое дело. Единственное отличие, это добавление ${} вне массива.

<div th:replace="fragments :: test_fragment(${ {'one', 'two', 'three'} })"></div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...