使用 MVEL 针对多重地图评估规则



只是想知道如何使用 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)

您也可以尝试使用纯 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;
            }**
    }

最新更新