Skip to content

布尔表达式

用于条件判断,最终返回 truefalse,常用于 IF 节点与流程分支。基于 Spring Expression Language(SpEL),输入变量为 msg(当前消息 payload)。

快速上手

js
msg.title == '系统告警'
msg.level >= 3 && msg.status != 'closed'
msg.title.contains('紧急')

语法参考

访问 msg

js
msg.title           // 字符串
msg.level           // 数字
msg.flag            // 布尔
msg.sender.name     // 嵌套属性
msg.sender?.name    // 安全导航(sender 可能为 null)
msg.tags[0]         // 数组下标
msg.output.count    // 处理节点输出

运算符

运算符说明示例
==等于msg.title == '123'
!=不等于msg.status != 'closed'
> / <大于 / 小于msg.level > 2
>= / <=大于等于 / 小于等于msg.score >= 60
&&and逻辑与msg.level > 1 && msg.flag == true
||or逻辑或msg.type == 'A' || msg.type == 'B'
!not逻辑非!msg.isRead
matches正则匹配msg.title matches '.*紧急.*'

字符串与集合方法

方法说明示例
.contains(str)包含子串msg.title.contains('告警')
.startsWith(str)以…开头msg.code.startsWith('ERR')
.endsWith(str)以…结尾msg.code.endsWith('_SYS')
.isEmpty()是否为空字符串msg.content.isEmpty()
.length()字符串长度msg.title.length() > 10
.size()集合元素个数msg.tags.size() > 0

示例

js
msg.title == '123'
msg.level >= 3
msg.level >= 1 && msg.level <= 5
msg.status == 'active' && msg.level > 1
msg.type == 'warning' || msg.type == 'error'
!msg.isRead
msg.title.contains('告警')
msg.title matches '.*紧急.*'
msg.sender?.name == '系统' && msg.level >= 2
(msg.level >= 1 && msg.level <= 5) && msg.status != 'closed'

注意事项

  • 字段可能为 null 时使用 ?.(如 msg.sender?.name),否则表达式会报错并中断执行
  • 字符串比较使用单引号msg.title == '告警'
  • and / or / not&& / || / ! 等价,按团队习惯统一即可

相关文档