表达式解释引擎 JSEL
<p>JSEL是一个兼容 JavaScript 运算规则的简单的表达式解释引擎,你可以通过Map接口,或者JavaBean给出一个变量集合,能后通过表达式从这个集合中抽取变量,再通过表达式逻辑生成你需要的数据。 </p> <h4>适用场合</h4> <ul> <li>模板引擎的表达式实现。 </li> <blockquote> 模板系统处理各种后台数据的时候,就需要用到表达式的功能。有些简单的模板系统的表达式功能非常有限,比如说只支持变量,属性获取;如果有了JSEL,他的功能将非常强大。 LITE采用的默认表达式引擎就是JSEL。 </blockquote> <li>通用数学表达式计算工具 </li> <blockquote> 可用于最终用户定义简单运算规则;比如,你可以通过他设计一个功能强大的计算器。 </blockquote> <li>嵌入其他对文件大小要求苛刻环境。 </li> <blockquote> 如手机软件,webstart小程序中,如果你希望用表达式做一些简单的计算,那么JSEL是一个不错的选择。 </blockquote> <li>规则引擎的表达式需求 </li> <blockquote> JSEL非常方便扩展,您可以在JSEL基础上扩展业务相关的操作符。或者函数调用。 </blockquote> </ul> <h4><a name="基本特征"></a>基本特征</h4> <ul> <li>运算规则基于JavaScript。 </li> <li>支持变量,常量(基础类型/数字/对象字面量),ECMA全局函数/对象,基本运算符。 </li> <li>引擎实现的简单高效 </li> <blockquote> 程序体积非常小(附加上Lite模板运行环境后,jar文件依然只有90k,同类工具OGNL 168k)。 </blockquote> <li>可扩展 </li> <blockquote> 支持函数扩展,操作符别名定义,操作符定义。 </blockquote> </ul> <h4>基本用法<pre class="brush:java; toolbar: true; auto-links: false;">import org.xidea.el.Expression; import org.xidea.el.ExpressionImpl; import java.util.HashMap; public class Test{ public static void main(String[] args){ Expression el = new ExpressionImpl("var1 +2 * var2"); //Expression el = new ExpressionImpl("var1 +2 * var2",new CalculaterImpl());//你也可以定义你自己的运算规则 HashMap context = new HashMap(); context.put("var1",111); context.put("var2",222); Object result1 = el.evaluate(context);//555 context.put("var2",333); Object result2 = el.evaluate(context);//777 System.out.println("result1:"); System.out.println(result1); System.out.println("result2:"); System.out.println(result2); } }</pre> <p><strong>项目主页:</strong><a href="http://www.open-open.com/lib/view/home/1324197475108" target="_blank">http://www.open-open.com/lib/view/home/1324197475108</a></p> </h4>
本文由用户 openkk 自行上传分享,仅供网友学习交流。所有权归原作者,若您的权利被侵害,请联系管理员。
转载本站原创文章,请注明出处,并保留原始链接、图片水印。
本站是一个以用户分享为主的开源技术平台,欢迎各类分享!