开始关注让产品升值的东西。
比如,用户想自己在订单里定义一个叫含税价的列,公式为"单价/0.93",用Groovy实现,是那么的简单:
String formula="单价/0.93";
Binding binding = new Binding();
//放入所有用户可能用到的因子
binding.setVariable("单价", new Integer(2));
GroovyShell shell = new GroovyShell(binding);
Object value = shell.evaluate("return " +formula );
out.print(value);
Groovy的国际化支持做的如此好,如上所见,居然支持中文的变量名,客户可以直接用中文定义公式。
不是我懒,用Groovy运行客户的公式需要知道的真就这么多。当然,用户还可以按照Groovy的简单语法,用if-else写出更加复杂的公式,比如达到某个数量的折扣率会不同。 另外,如果公式需要返回多个值,可以用binding.getVariable("变量名") 来获得。
江南白衣
本文地址:http://com.8s8s.com/it/it11449.htm