You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Thymeleaf中如何正确使用OR逻辑运算符编写条件判断?

解决Thymeleaf中OR逻辑运算符的条件判断问题

嘿,我一眼就发现你的问题啦——不是Thymeleaf的OR语法写错了,而是你的逻辑条件本身有问题!

先看你写的条件:

<div th:if="${(fingerprints.totalPages != 0) or (fingerprints.totalPages != 1)}">

这个条件永远都会成立,不管totalPages的值是多少:

  • 如果totalPages是0:第二个条件!=1为真,整个OR结果为真
  • 如果totalPages是1:第一个条件!=0为真,整个OR结果为真
  • 如果是其他数字:两个条件都为真,结果还是真

所以这个div不管什么情况都会显示,自然看起来像是“无效”。

正确的语法与逻辑调整

Thymeleaf里的OR运算符本身支持两种写法:or或者||,语法是没问题的,关键是要根据你的实际需求调整逻辑:

场景1:你想在totalPages既不是0也不是1的时候显示div

这时候应该用AND运算符,而不是OR:

<div th:if="${fingerprints.totalPages != 0 and fingerprints.totalPages != 1}">
<!-- 或者用&&写法 -->
<div th:if="${fingerprints.totalPages != 0 && fingerprints.totalPages != 1}">

场景2:你想在totalPages是0或者是1的时候显示div

那OR的条件要写成等于判断:

<div th:if="${fingerprints.totalPages == 0 or fingerprints.totalPages == 1}">
<!-- 或者用||写法 -->
<div th:if="${fingerprints.totalPages == 0 || fingerprints.totalPages == 1}">

场景3:确实需要OR的非等于场景(很少见)

比如你想判断totalPages不等于0 或者 不等于某个其他值(比如5),那直接用or就可以,只要逻辑合理:

<div th:if="${fingerprints.totalPages != 0 or fingerprints.totalPages != 5}">

总之,先理清你真正的业务逻辑,再对应调整条件,Thymeleaf的逻辑运算符语法本身是很直观的~

内容的提问来源于stack exchange,提问作者abc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:40:41