在thymeleaf中,我为每个循环都这样:
<ul class="days">
<li th:each="day : ${days}" th:text="${day}" >1</li>
</ul>
这成功地列出了名为days
的数组中的所有字符串,其填充表示[“1”,“2”,“3”......“31”],表示给定月份中的天数。
我也有一个items
数组,其中也包含天数字符串。
这是我想在伪代码中做的事情,但我正在努力弄清楚如何实现它:
在
days
的每一天;在items
的每一天;如果items.day
=days.day
然后设置'class=active'
(bootstrap)和th:text =days.day
其他
th:text=days.day
因此,如果在items
中的一天与days
中的一天匹配,那么<li>
元素将设置为class=active
并使<li>
可以点击href="/myurl"
。无论哪种方式,来自days
的那天是th:text
的<li>
。
对不起,如果这很难理解,我试着尽可能清楚。
编辑:这是最新的尝试:
<ul class="days">
<li th:each="s : ${days}" th:with="found=${false}">
<span th:each="item : ${items}" th:if="{$item.day == s}">
<span th:text="${s}" th:classappend="active" th:href
th:with="${found} = true"></span>
</span>
<span th:if="{$found == false}">
<span th:text="${s}"></span>
</span>
</li>
</ul>
我想你可以用conditional expressions实现这一目标。简单地写一些像
<span th:text="${s}" th:classappend="${#lists.contains(items, s)}? 'active' : ''">
此代码还使用#lists,这是Thymeleaf非常有用的功能。