我想使用变量person.id来进行其他调用。但似乎协调不支持这个("无效的表达式")。我是否有义务在人和工作中使用豆子并打电话给getLoginAndJob?
<span c:execute="#person = login(#login,#password)"></span>
<span c:execute="#job = getJob(#person.id)"></span>
答案 0 :(得分:2)
为了保持规格简单易维护,Concordion故意限制仪表规范时允许的表达格式。
在这种情况下,我建议更改fixture类中的getJob()方法以获取person对象。
但是,如果您确实要删除限制,可以将注释@FullOGNL应用于fixture类,然后Concordion将接受OGNL库允许的任何表达式,包括此表达式。
由于此问题经常出现,我已将其添加到Concordion FAQ。
答案 1 :(得分:0)
另一种方法是将所需的值分配给变量。所以你的代码将成为:
<span c:execute="#person = login(#login,#password)"></span>
<span c:set="#personId = getId(#person)"></span>
<span c:execute="#job = getJob(#personId)"></span>
如果您的Person类还没有针对其id字段的getter方法,则必须添加它。