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
相关产品推荐
相关产品推荐

