【发布时间】:2013-11-26 15:39:52
【问题描述】:
假设我有一个需要使用 MVEL 评估的以下表达式。
( ( ( A * B ) + C ) / D )
假设 B 的值为 NULL,则 MVEL 将“A * B”评估为 FALSE。 “(A * B)+ C”变为FalseC 然后 FalseC/D 抛出异常
如何防止这种情况...??
【问题讨论】:
假设我有一个需要使用 MVEL 评估的以下表达式。
( ( ( A * B ) + C ) / D )
假设 B 的值为 NULL,则 MVEL 将“A * B”评估为 FALSE。 “(A * B)+ C”变为FalseC 然后 FalseC/D 抛出异常
如何防止这种情况...??
【问题讨论】:
到目前为止,我们解决了这个问题。 如果你真的在 Mvel API 类中调试它,它们会显式地返回 false 对于这种特殊情况。如果 Mvel 能解决这个问题,那就太好了。但是我也遇到了同样的问题,所以我们做了什么,我们在执行表达式之前创建了一些智能,我们修改了表达式并包含了“IF”条件来检查字段是否为空并且运算符为“/”或“* ",返回null。
【讨论】: