2015-04-12 15 views
6

tôi cần phải lặp và tạo <span> yếu tố cho mỗi component trong mảng components trong đó có các name của 'MATERIAL'Thymeleaf thứ: mỗi lọc với thứ: nếu

Mã của tôi là như sau

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

Mã này hoạt động tốt cho đến khi điều này tạo ra tập hợp các thành phần rỗng <span> nếu name không bằng 'MATERIAL'. Tôi không muốn các thành phần trống rỗng <span> này được tạo.

Tôi cũng đã cố gắng dưới đây

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

Điều này dẫn đến sản lượng trống rỗng và không in gì cả. Ai đó có thể giúp tôi về điều này.

Trả lời

12

Bạn nên tham khảo các tài sản mục lặp trực tiếp sử dụng một dấu chấm ký thay vì đi qua một biểu evalution SpEL (*{name}) bên trong phần tử html của bạn (.):

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

Cảm ơn bạn. Điều đó đã khắc phục được sự cố. –

+0

Rất vui khi được nghe :) – tmarwen

Các vấn đề liên quan