java - Evaluating an Expression using MVEL -



java - Evaluating an Expression using MVEL -

i need evaluate look in mvel containing date. basically, i need add together number of days given date , value. when trying evaluate look in mvel, getting exceptions.

here code::

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); } }

i getting next exception::

exception in thread "main" [error: unresolvable property or identifier: c] [near : {... c.add(calendar.day_of_month, 4 ....}] ^ [line: 1, column: 1] @ org.mvel2.propertyaccessor.getbeanproperty(propertyaccessor.java:677) @ org.mvel2.propertyaccessor.getnormal(propertyaccessor.java:179) @ org.mvel2.propertyaccessor.get(propertyaccessor.java:146) @ org.mvel2.propertyaccessor.get(propertyaccessor.java:126) @ org.mvel2.ast.astnode.getreducedvalue(astnode.java:187) @ org.mvel2.mvelinterpretedruntime.parseandexecuteinterpreted(mvelinterpretedruntime.java:106) @ org.mvel2.mvelinterpretedruntime.parse(mvelinterpretedruntime.java:49) @ org.mvel2.mvel.eval(mvel.java:165) @ mvel.mveldatetest.main(mveldatetest.java:31)

you have add together c context m1. also, calender unknown, too, utilize c instead (ugly, works). finally, note add returns void, i.e. modifies c in-place. seek this:

system.out.println(c.gettime()); m1.put("c", c); mvel.eval("c.add(c.day_of_month, 4)", m1); system.out.println(c.gettime());

output:

thu oct 02 00:00:00 cest 2014 mon oct 06 00:00:00 cest 2014

java expression mvel

Comments

Popular posts from this blog

xslt - DocBook 5 to PDF transform failing with error: "fo:flow" is missing child elements. Required content model: marker* -

mediawiki - How do I insert tables inside infoboxes on Wikia pages? -

Local Service User Logged into Windows -