[英]Evaluating an Expression using MVEL
我需要評估包含日期的MVEL中的表達式。 基本上, 我需要將特定天數添加到給定日期並獲取值。 當我嘗試評估MVEL中的表達式時,出現了一些異常。
這是我的代碼:
package Mvel;
import java.io.Serializable;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import org.mvel2.MVEL;
import org.mvel2.integration.VariableResolverFactory;
import org.mvel2.integration.impl.MapVariableResolverFactory;
public class Mveldatetest {
public static void main(String[] args) throws ParseException {
// TODO Auto-generated method stub
Map<String, Object> m1 = new HashMap<String, Object>();
m1.put("name", "xyz");
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
Date d1 = sdf.parse("02/10/2014");
m1.put("doj", d1);
//Date d2=sdf.parse("05/10/2014");
System.out.println("Given Date"+" "+d1);
final Calendar c = Calendar.getInstance();
c.setTime(d1);
System.out.println(c.getTime());
Date finaldate=(Date) MVEL.eval("c.add(Calendar.DAY_OF_MONTH, 4)",m1);
System.out.println(finaldate);
}
}
我收到以下異常::
Exception in thread "main" [Error: unresolvable property or identifier: c]
[Near : {... c.add(Calendar.DAY_OF_MONTH, 4 ....}]
^
[Line: 1, Column: 1]
at org.mvel2.PropertyAccessor.getBeanProperty(PropertyAccessor.java:677)
at org.mvel2.PropertyAccessor.getNormal(PropertyAccessor.java:179)
at org.mvel2.PropertyAccessor.get(PropertyAccessor.java:146)
at org.mvel2.PropertyAccessor.get(PropertyAccessor.java:126)
at org.mvel2.ast.ASTNode.getReducedValue(ASTNode.java:187)
at org.mvel2.MVELInterpretedRuntime.parseAndExecuteInterpreted(MVELInterpretedRuntime.java:106)
at org.mvel2.MVELInterpretedRuntime.parse(MVELInterpretedRuntime.java:49)
at org.mvel2.MVEL.eval(MVEL.java:165)
at Mvel.Mveldatetest.main(Mveldatetest.java:31)
您必須將c
添加到上下文m1
。 另外, Calender
也是未知的,但是您可以改用c
(難看,但是可以)。 最后,請注意, add
返回void,即它就地修改了c
。 嘗試這個:
System.out.println(c.getTime());
m1.put("c", c);
MVEL.eval("c.add(c.DAY_OF_MONTH, 4)", m1);
System.out.println(c.getTime());
輸出:
Thu Oct 02 00:00:00 CEST 2014
Mon Oct 06 00:00:00 CEST 2014
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.