当我试图评估一个简单的MVEL表达式获取错误:无法访问:name

时间:2014-06-20 06:46:44

标签: java mvel

import org.mvel2.MVEL;

public class MVELEvalTst {

    public static void main(String[] args) {
        String name = "xxx";
        Object eval = MVEL.eval("myName=='xxx'",name);
        System.out.println(eval);
    }

}

这是我简单的eval表达式。当我运行它时,获得以下异常。有没有人遇到过这个?请帮忙。

Exception : Exception in thread "main" [Error: could not access: myName; in class: java.lang.String]
[Near : {... myName=='xxx' ....}]
         ^
[Line: 1, Column: 1]
    at org.mvel2.PropertyAccessor.getBeanProperty(PropertyAccessor.java:680)

1 个答案:

答案 0 :(得分:0)

您需要将属性myName传递给MVEL,以便进行评估。

代码应如下所示

import org.mvel2.MVEL;

    public class MVELEvalTst {

        public static void main(String[] args) {
            String name = "xxx";

            Map map = new HashMap();
            map.put("myName",name);
            Object eval = MVEL.eval("myName=='xxx'",map);
            System.out.println(eval);
        }

    }

现在运行并检查输出。输出是真的。 另请参阅网站http://mvel.codehaus.org/