[英]Thymeleaf: Check if list contains a string containing a substring
我有一个需要在 Thymeleaf 中进行的组合检查:
th:if="${#lists.contains(data, '...')}"
那样完成th:each="item: *{data}" th:if="${#strings.contains(item,'(')}"
这样检查 substring “(”在列表的项目中如果列表包含一个包含 substring "(" 的项目,我需要显示一个 UL 标签。没有迭代,只有这个组合条件。我如何在一行中实现它?
<ul th:if="..."> <!-- This must be a combined check, no iteration. I don't even want to output the UL if not satisfied -->
</ul>
您可以通过集合选择来完成此操作。 只需测试列表大小是否大于零。 这样的事情会起作用:
<ul th:if="${#lists.size(data.?[#strings.contains(#this,'(')]) GT 0}">
</ul>
假设您有一个这样的列表,用于测试:
List<String> data = Stream.of("abc", "d(ef", "ghi")
.collect(Collectors.toList());
您可以使用以下内容:
<ul th:if="${#strings.contains( #strings.listJoin(data,'') ,'(')}">
bazinga
</ul>
这首先将列表中的每个项目连接成一个字符串。
然后它检查该字符串是否包含任何(
字符。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.