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

Thymeleaf中th:if的‘or’运算符正确语法咨询

Thymeleaf中th:if使用逻辑运算符(含Or)的正确写法

嗨,针对你要在Thymeleaf的th:if里添加多条件判断的需求,我给你两种符合语法的写法,同时也帮你理清Or运算符的正确使用方式:

方式一:使用and连接两个“不以...开头”的条件

因为你需要同时满足「不以'P'开头」且「不以'App'开头」才能显示文本,直接用and连接两个否定判断最直观:

th:if="${not #strings.startsWith(inbox?.status, 'P') and not #strings.startsWith(inbox?.status, 'App')}"

方式二:用or配合外层否定(逻辑等价写法)

如果你想用到or运算符,可以利用逻辑转换——“既不A也不B”等价于“非(A或B)”,写法如下:

th:if="${not (#strings.startsWith(inbox?.status, 'P') or #strings.startsWith(inbox?.status, 'App'))}"

这里要注意几个关键细节:

  • Thymeleaf里的逻辑运算符是小写的and/or,官方推荐使用这种写法(部分版本兼容&&/||,但小写关键字更规范)
  • 用括号包裹多个条件时,要确保括号在${}内部,并且和运算符之间保留空格,避免语法错误
  • 你保留的inbox?.status空安全操作符很实用,能有效避免null值引发的异常

另外补充下Or运算符的常规使用场景:比如你想在「以'P'开头或以'App'开头」时显示内容,写法就是:

th:if="${#strings.startsWith(inbox?.status, 'P') or #strings.startsWith(inbox?.status, 'App')}"

这样不管你是需要多条件的与/或判断,都能正确实现啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:27:38