Fragmentos de Thymeleaf con entrada parametrizada no funcionan.
Fragmento
html
<div th:fragment="ordenar (etiqueta,campo)">
<label th:text="${etiqueta}"> Etiqueta
<input th:name="'sort-' + ${campo}" type="radio" value="asc"/>
<input th:name="'sort-' + ${campo}" type="radio" value="dsc"/>
</label>
</div>
Uso
html
<div th:replace="fragments/form.html :: ordenar(etiqueta = 'Nombre', campo = 'nombre')"></div>
Lo que aparece en la página
html
<label>Nombre</label>
davy.ai
El código de arriba define un fragmento Thymeleaf con el nombre “sort”, que toma dos argumentos: “label” y “field”. Genera una etiqueta y dos botones de radio, donde el argumento “label” se utiliza como el texto de la etiqueta y el argumento “field” se utiliza para construir el atributo “name” de los botones de radio.
Para utilizar este fragmento en una plantilla Thymeleaf, puede utilizar el atributo “th:replace” para reemplazar un elemento contenedor con el fragmento renderizado. En este ejemplo, el fragmento se utiliza para renderizar un control de ordenamiento para un campo “name”, con una etiqueta de “Name”.
En la página, el código aparecería así: