0

只是想知道如何使用 MVEL 针对多图评估规则。

IE:

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)
4

1 回答 1

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;
            }**
    }
于 2013-01-28T05:10:11.183 回答