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

1 回答 1

1

您需要将属性传递myNameMVEL,以便它可以评估。

代码应该如下

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/

于 2014-06-20T19:12:45.350 回答