data语法
版本支持:v2.9.0+
你可以在EL语法中通过data
来给组件设置外置参数,建议最好是JSON格式:
<flow>
<chain name="chain1">
cmpData = '{"name":"jack","age":27,"birth":"1995-10-01"}';
THEN(a, b.data(cmpData), c);
</chain>
<chain name="chain2">
cmpData = '{"name":"rose","age":20,"birth":"1997-07-01"}';
WHEN(c, b.data(cmpData));
</chain>
</flow>
上述表达式中,同一个b组件,在不同的chain中被赋予了不同的外置参数,运行中在组件中通过this.getCmpData
方法也能拿到相应的参数。
如果上述对象是一个Json的数组,在组件中也可以通过getCmpDataList
方法来获取。
这个方法是可以返回对应结构的java对象的,只要传入相对应的class即可。
@LiteflowComponent("b")
public class BCmp extends NodeComponent {
@Override
public void process() {
User user = this.getCmpData(User.class);
...
}
}
要注意的是,data
关键字也可以用作于表达式,子变量,chain上,其意义是被赋值的表达式/子变量/chain里所有的组件都设置了相同的值,比如:
<chain name="chain1">
THEN(a, b, c).data("123");
</chain>
<chain name="chain1">
sub = WHEN(b, c);
THEN(a, sub.data(""))
</chain>
<chain name="chain1">
THEN(a, b, c);
</chain>
<chain name="chain2">
WHEN(x, y, chain1.data("123"));
</chain>
帮助我们改善此文档 (opens new window)
上次更新: 2025/02/22, 13:47:36