2015-04-12 12 views
6

ho bisogno di scorrere e creare <span> elementi per ciascuna delle component nell'array components che ha la name di 'MATERIAL'Thymeleaf th: ogni filtrato con th: se

mio codice è come sotto

<span th:each="component : ${body.components}" 
     th:object="${component}"> 
     <button th:if="*{name} == 'MATERIAL'" 
       th:text="*{title}"></button> 
</span> 

Questo codice funziona correttamente finché non viene generato un insieme di elementi <span> vuoti se lo name non è uguale a 'MATERIAL'. Non voglio che questi elementi vuoti <span> vengano creati.

Ho anche provato il seguito

<span th:each="component : ${body.components}" 
     th:object="${component}" 
     th:if="*{name} == 'MATERIAL'"> 
     <button th:text="*{title}"></button> 
</span> 

Questo si traduce in uscita vuota e non stampa nulla. Qualcuno può aiutarmi per favore su questo.

risposta

12

Si dovrebbe fare riferimento alla proprietà oggetto di iterazione direttamente utilizzando un punto segno invece di passare attraverso un'espressione evalution SPEL (*{name}) all'interno del vostro elemento html (.):

<span th:each="component : ${body.components}" 
     th:object="${component}" 
     th:if="${component.name} == 'MATERIAL'"> 
    <button th:text="*{title}"></button> 
</span> 
+0

Grazie. Questo ha risolto il problema. –

+0

Felice di sentirlo :) – tmarwen

Problemi correlati