我尝试在StackExchange上搜索,并使用Google和Thymeleaf参考查看了其他地方。看起来下面的语法应该可行,但它不会根据给定的条件过滤列表。
<th:block th:each="dayNumber :${#numbers.sequence(1,7)}">
<p th:if="${#lists.isEmpty(storeHours.?[#this.dayOfWeek eq #dayNumber])}" th:text="${dayNumber}"></p>
</th:block>
在上面,我们尝试做一个非常简单的过滤器。 storeHours
是Store Hours对象的列表。每个对象都有一个名为dayOfWeek
的属性。这是一个整数。在上面,我试图简单地打印丢失的日期号码。但是,它打印所有7天。
我确信我在这里遗漏了一些非常基本的东西。
感谢任何帮助。
答案 0 :(得分:0)
试试这段代码:
<th:block th:each="dayNumber :${#numbers.sequence(1,7)}">
<p th:if="${#lists.isEmpty(storeHours.?[dayOfWeek.equals(dayNumber)])}" th:text="${dayNumber}"></p>
</th:block>
也许您需要检查storeHours
是否为空?
然后是${not #lists.isEmpty(...)}
。
答案 1 :(得分:0)
在控制器中:
(...)
Person p1 = new Person();
p1.setAge(20);
Person p2 = new Person();
p2.setAge(30);
List<Person> list = Lists.newArrayList(p1,p2);
modelMap.addAttribute("list", list);
Integer minAge = 13;
modelMap.addAttribute("minAge", minAge);
(...)
在html中:
<table th:with="min=${minAge}">
<tr th:each="person,rowStat : ${list.?[age > __${min}__]}">
<td><span th:text="${person.age}"></span></td>
</tr>
</table>
输出:
30