疯狂Activiti6.0连载(15)DMN规则匹配表达式

本文介绍了在Activiti6中如何使用DMN规则匹配表达式,特别是MVEL表达式的应用。通过示例展示了MVEL的简单使用,如编译和执行表达式,并解释了规则引擎在匹配逻辑中的处理方式,包括如何根据输入参数自动生成表达式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  本文节选自《疯狂工作流讲义(第2版)》

京东购买地址:https://item.jd.com/12246565.html

工作流Activiti6电子书http://blog.youkuaiyun.com/boxiong86/article/details/78488562

工作流Activiti6教学视频http://blog.youkuaiyun.com/boxiong86/article/details/78608585

DMN规则匹配表达式

规则引擎中的输入参数与输出结果,可以在inputExpression元素下使用MVEL表达式,这样就意味着在规则匹配以及结果处理上,都使得规则引擎变得很灵活,本小节将以MVEL为基础,讲述Activiti规则引擎在匹配上的原理。

MVEL表达式简介

MVEL一款基于Java程序的表达式语言,它支持大部分的Java语法,当前版本为2.0使用MVEL,可以在XML文档实现获取属性值、进行运算、设置结果等功能,除此之外,还可以对其进行扩展,实现更为复杂的需求。目前很多开源项目都使用了MVEL表达式,例如DroolsApache Camel等框架。Activiti规则引擎中也使用了MVEL,因此允许在DMN文件使用跟以下代码片断类似的表达式:

person.name == Angus && person.age == 30

以上表达式判断person对象的name属性值是否为“Angus”以及age属性值是否为30表达式的执行结果为true或者false本小节将先讲述MVEL简单使用。

执行第一个表达式

下面编写一个最简单的表式,使用MVELAPI进行编译与执行,见代码清单15-13

代码清单15-13codes\15\15.5\mvel-test\src\org\crazyit\activiti\FirstTest.java

//进行编译

Serializable compiledExpression = MVEL

.compileExpression("personName == 'Angus'");

//设置执行参数

Map<String, String> params = new HashMap<String, String>();

params.put("personName", "Angus");

//执行表达式并返回结果

Boolean result = MVEL.executeExpression(compiledExpression, params,

Boolean.class);

//控制台输出结果

System.out.println("表达式第一次执行结果:" + result);

//传入其他 参数,结果将为false

params.put("personName", "Paris");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨大仙的程序空间

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值