JSEL

表达式解释引擎
授权协议 LGPL
开发语言 Java
所属分类 Web应用开发、 JSON/BSON开发包
软件类型 开源软件
地区 不详
投 递 者 公冶兴文
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

JSEL是一个基于逆波兰式结构,采用JS运算规则的简单的表达式解释引擎。 同时它还是一个JSON解析引擎。

基本特征

  • 基于逆波兰式这个简单的计算模型,最大的特点就是简单。
  • 支持短路优化(运算过程中,会根据需要,跳过无需计算的节点(boolean运算和三元运算有此类需求)。
  • 运算规则基于前端开发人员熟悉的JavaScript,可以用于模板引擎的表达式实现。
  • 他同时还是JSON解释引擎的超集,可以用于解释JSON数据源。
  • 简单的运算接口,可以简单的重新定义运算规则。
  • 由于引擎本身实现的简单,程序体积非常小(JAR文件只有22k,同类工具OGNL 168k);适合于嵌入其他对文件大小要求苛刻环境,如需要下载的webstart小程序。

基本用法

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);
   
}
}
  • 为了避免在jsp页面中使用java脚本,以方便分工合作开发 引入标签库 <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 常用标签: if标签: 单分支逻辑判断。 <c:if test="${表达式}">数据</c:if> 多分支判断标签: 符合条件后只会执行一个分支,其他分支不会执行。 <c:choose> <c

  • JSEL 是一种表达式语言,用于实现动态的 Java 表达式求解,用于替代 JSP 表达式(<%=… %>) ${ 范围.对象.属性 } 或 ${ 范围.对象[属性] } 1) 隐式对象 pageContext JSP 的 PageContext pageScope 当前页面范围 requestScope Request 范

  • var customHtml=""; var customMap="${empty customMap}"; if(customMap!="true"){ var customRows=eval('(' + '${customMap}' + ')');  var customList=customRows.Rows; $.each(customList,function(i,obj){      

  • http://jindw.iteye.com/blog/732354   JSEL应用:http://code.google.com/p/lite/wiki/JSEL

  • 在JS中怎么使用EL表达式?因为在使用的时候经常出现在JS中取不到值的情况。 下面我们来看一看怎么实现在javascript里面使用EL表达式: 第一种如果JS代码在jsp文件中则:(这里设定是从参数里面取值,比如:用户注册) JS代码在JSP页面中, 这可以直接使用EL表达式 <script type="text/javascript"> function test(){ var a = "${

  • 基本概念  Moment.js:JavaScript 日期处理类库 解决方案 formatter="dateFormat"绑定一个 dateFormat方法    <el-table-column prop="createTime" :formatter="dateFormat" label="日期" width="120"> </el-table-colu

  •   首先贴一下我原来的代码。    for(var i=0;i<number;i++){ console.log("content:"+array[i]); var content = '${questionList[""+i+""].content}';//中间双重引号,原因暂时不是很清楚 var options = '${questionList[""+i+""

  • 今天在项目中遇到的问题,jsp页面引用的单独的js文件,但是后台传递的一些参数在js文件中直接用EL表达式获取报错,网上查资料找到了解决方案,做个汇总,以供参考。 JS中使用EL表达式获取后台传递的参数,有两种情况。 第一种情况: (1)在jsp页面引入jstl标签库: <%@ taglib uri=”http://java.sun.com/jsp/jstl/core” prefix=”c”%>

  • <el-dialog class="confirm" v-dialogDrag> </el-dialog> // v-dialogDrag: 弹窗拖拽 Vue.directive('dialogDrag', { bind(el, binding, vnode) { const dialogHeaderEl = el.querySelector('.el-

  • JSEL是一个基于逆波兰式结构,采用JS运算规则的简单的表达式解释引擎。 同时它还是一个JSON解析引擎。 基本特征 基于逆波兰式这个简单的计算模型,最大的特点就是简单。 支持短路优化(运算过程中,会根据需要,跳过无需计算的节点(boolean运算和三元运算有此类需求)。 运算规则基于前端开发人员熟悉的JavaScript,可以用于模板引擎的表达式实现。 他同时还是JSON解释引擎的超集,可以用于

  • el表达式的标签会转化为服务器端的代码执行,而js代码则在客户端执行。 要在js中使用el表达式并不是直接将el表达式的value赋值给一个js的变量,而是要在el表达式的value上加上' ${ el}'(注意是单引号),比如一个从服务器端返回的数据可以这样赋值给js的变量。 var result = '${result}'; 注意是单引号

  • EL(Expression Language), EL表达式使用’${标识符}’表示,可用在所有的HTML和JSP标签中,作用是代替JSP页面中复杂的JAVA代码。 1、 在js中如何使用EL表达式 因为EL表达式是在服务端解析完成的,而js是在客户端解析完成的,因此,处理的方法比较特殊,现给出两种处理方式。 方法一:直接在JSP中引入js脚本 直接在JSP中加入js脚本<script></scr

 相关资料
  • 本文向大家介绍解释Java正则表达式中的子表达式“ [...]”,包括了解释Java正则表达式中的子表达式“ [...]”的使用技巧和注意事项,需要的朋友参考一下 子表达式“ [...] ”匹配括号中指定的任何单个字符。 例子1 输出结果 例子2 以下Java程序从用户那里接收5个字符串,并打印包含元音字母的字符串/单词。 输出结果

  • 你,对,就是你,正在看这篇文章的人,我虽然不认识你,但是 我可以负责任的说, 如果你看到这个标题就心里在悄悄的呼喊: “靠,他们连这个都有!我省事了,哇哈哈哈和”。 那么,你绝对属于百分之一的特例。 就是说,绝大多数人的绝大多数项目,是不需要 一个嵌入式的表达式引擎的。因此,提供这个功能的目的就是: 满足一小撮人的一小撮要求 但是,"一小撮人"的"一小撮要求"有很多,作为一个小众类库,为什么单单打

  • 本文向大家介绍解释Java正则表达式中的量词,包括了解释Java正则表达式中的量词的使用技巧和注意事项,需要的朋友参考一下 如果要在构造正则表达式时指定出现次数,则可以使用量词。下表列出了Java正则表达式支持的量词- 量词 描述 例 回覆* 零次或多次出现。 [0-9] *:匹配0或多个数字。 回覆? 一种或完全没有发生。 [0-9] ?:匹配0或1位数字。 重新+ 一个或多个事件。 [0-9]

  • 我正在寻找一个JAVA库来解析 我的要求: 支持所有的值类型(例如int,双,布尔,String等) 支持所有已知的数学 有什么建议吗?

  • 静态编程语言允许注释表达式。然而,尚不清楚这些注释如何有用以及如何使用它们。 假设在下面的示例中,我想检查一下,该字符串包含@MyExpr注释中指定的数字。这能实现吗?如何实现?