小智 9
MVEL 是一种 Apache 许可的强大表达式语言 (EL),用 Java 编写,用于基于 Java 的应用程序,因此其语法与 Java 大致相似。
考虑一个例子。
rule "validate holiday"
dialect "mvel"
dialect "java"
when
$h1 : Holiday( month == "july" )
then
System.out.println($h1.name + ":" + $h1.month);
end
Run Code Online (Sandbox Code Playgroud)
方言“mvel”的目的是指向Plain Old Java Object (POJO) 类的变量的Getter 和Setter。考虑上面的示例,其中使用了 Holiday 类并在圆括号(圆括号)内使用了“月”。因此,通过帮助方言“mvel”,可以访问变量“month”的 getter 和 setter。
方言“java”用于帮助我们在规则中编写 Java 代码。对此有一个限制或特征。我们不能在规则的“when”部分使用 Java 代码,但可以在“then”部分使用 Java 代码。
我们也可以声明一个不带 $ 符号的引用变量 $h1。对此没有限制。变量前加$符号的主要目的是标记POJO类和Rules变量的区别。