2017-11-27 2 views
0

Zuerst überprüfe ich, ob der Titel, von dem ich die Tracklist bekomme, eine CD ist. Wenn das stimmt, möchte ich die Liste durchlaufen und für jeden Eintrag einen Absatz erstellen. Mein Problem ist, dass ich einen Fehler bei $ {item.getTrackList()} für Elemente bekomme, die keine CD sind, weil sie kein Attribut "trackList" haben. Warum ignoriert der Ausdruck "th: each" die switch-case-Anweisung?Thymeleaf "th: each" ignoriert "th: switch"?

<div th:switch="${type}" th:remove="all-but-first"> 
<div th:case="CD" th:each="track : ${item.getTrackList()}"> 
    <p th:text="${track}"></p> 
</div> 
</div> 

Antwort

1

http://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#attribute-precedence

th:each vor th:case ausgewertet. Du wirst es niedriger ist, so etwas wie dies zum Beispiel haben, sich zu bewegen:

<div th:switch="${type}" th:remove="all-but-first"> 
    <th:block th:case="CD"> 
    <div th:each="track : ${item.trackList}"> 
     <p th:text="${track}"></p> 
    </div> 
    </th:block> 
</div> 

Wenn Sie die zusätzliche divs nicht, so etwas wie:

<div th:switch="${type}" th:remove="all-but-first"> 
    <th:block th:case="CD"> 
    <p th:each="track : ${item.trackList}" th:text="${track}"></p> 
    </th:block> 
</div> 
Verwandte Themen