如何在Thymeleaf中判断变量是否属于字符串集合?
判断Thymeleaf变量是否在字符串集合中
作为Thymeleaf新手,想要实现类似in集合的判断逻辑其实很简单,Thymeleaf结合Spring EL(如果是Spring环境)提供了几种简洁的方式,完全满足你的需求:
方法1:使用Thymeleaf内置工具类#lists
Thymeleaf自带了一系列工具类,其中#lists可以用来处理集合操作,直接用它的contains方法就能检查元素是否在集合中:
<span th:if="${#lists.contains(['fr', 'en', 'bl'], entry.value)}"> 当entry.value在集合中时显示的内容 </span>
这里的['fr', 'en', 'bl']会被自动识别为List集合,#lists.contains()方法会返回布尔值,满足条件时渲染该<span>标签。
方法2:使用Spring EL的in操作符(推荐)
如果你是在Spring Boot环境下使用Thymeleaf,Spring EL的in操作符可以让写法更接近你想要的直观语法,只需要用大括号{}定义集合:
<span th:if="${entry.value in {'fr', 'en', 'bl'}}"> 当entry.value在集合中时显示的内容 </span>
这种写法和你预想的<span th:if="${entry.value} in ['fr','en','bl']">几乎一致,只是把方括号换成大括号(Spring EL中用大括号定义集合),非常容易理解和上手。
额外说明
如果你的项目没有依赖Spring(纯Thymeleaf环境),方法1依然适用;如果需要频繁复用这个判断逻辑,也可以自定义Thymeleaf方言扩展表达式,但对于新手来说,上面两种方法已经完全够用,无需额外复杂配置。
内容的提问来源于stack exchange,提问作者khaled Rihane
相关产品推荐
相关产品推荐

