表达式
Activiti使用UEL进行表达式解析,UEL代表统一表达语言,并且是EE6规范的一部分(有关详细信息,请参阅EE6规范),为了在所有环境中支持最新UEL规范的所有功能,Activiti使用了JUEL的修改版。
表达式可用于例如Java服务任务、执行侦听器、任务侦听器和条件序列流。尽管有两种类型的表达式,值表达式和方法表达式,但Activiti对此进行了抽象,因此它们都可以在需要表达式的地方使用。
-
值表达式:解析为一个值,默认情况下,所有流程变量都可以使用,此外,所有spring-beans(如果使用Spring)都可以在表达式中使用,一些例子:
${myVar} ${myBean.myProperty}
-
方法表达式:调用带有或不带有参数的方法,调用不带参数的方法时,请确保在方法名称后添加空括号(因为这会将表达式与值表达式区分开),传递的参数可以是文字值或自行解析的表达式,例子:
${printer.print()} ${myBean.addNewOrder('orderName')} ${myBean.doSomething(myVar, execution)}
请注意,这些表达式支持解析原语(包括比较它们)、bean、列表、数组和映射。
在所有流程变量之上,有一些可用于表达式的默认对象:
-
execution
:包含有关正在进行的执行的其他信息的DelegateExecution
。 -
task
:包含有关当前Task
的其他信息的DelegateTask
,注意:仅在从任务侦听器求值的表达式中有效。 -
authenticatedUserId
:当前已认证的用户的ID,如果没有用户通过身份验证,则该变量不可用。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。