只是想知道如何使用MVEL评估针对多图的规则。
即:
rule-> "foo" == "200"
上下文foo
中[100, 200, 300]
的可能值。
我不知道哪些是可能的值,所以我不能将它们作为规则的一部分包含在内。
理想情况下,我希望能够做到这样的事情:
List<String> valueList = new ArrayList<String>();
valueList.add("100");
valueList.add("200");
List<String> otherList = new ArrayList<String>();
otherList.add("otherValue");
Map<String, List<String>> context = new HashMap<String, List<String>>();
context.put("foo", valueList);
context.put("other", otherList);
MVEL.eval("foo == 200", context)
答案 0 :(得分:0)
您也可以尝试使用普通的java代码。 我们尝试了这个,它执行得很好。你可以把你的java代码传递给Mvel,它会给你结果。
可以在运行时将函数附加到字符串。只需用你的逻辑创建一个规则/条件。大胆的部分是我们写的。
public Boolean evaluate(Map contextMap){
**ClassA A = (ClassA) contextMap.get("contextObjectClassA");
List<ClassB> classb = A.getclassb();
if(null!=classb && classb .size()>0){
return true;
}else{
return false;
}**
}