表达式

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,如果没有用户通过身份验证,则该变量不可用。


博弈
2.5k 声望1.5k 粉丝

态度决定一切


引用和评论

0 条评论