jexl表达式应用
来源:互联网 发布:linux lo网卡 编辑:程序博客网 时间:2024/06/05 03:41
jexl表达式应用
package com.exp;import junit.framework.TestCase;import org.apache.commons.jexl2.Expression;import org.apache.commons.jexl2.JexlContext;import org.apache.commons.jexl2.JexlEngine;import org.apache.commons.jexl2.MapContext;public class Test extends TestCase { /** * * @desc <pre> * 需求描述:数据库中有如下表:test,列定义如下: * -------- * c1 c2 c3 * -------- * 1 2 3 * 2 1 0 * ... * -------- * 业务需要在用户录入数据后,进行数据校验,对不符合条件的数据,禁止保存; * * 条件1:如c1>c2,则c3=0;否则c3值不变; * 此问题可以使用客户端或服务器端简单实现,但是对于这样的表达式有几千个, * 并且需求经常发生变更时,代码维护量将成指数级增加,需要考虑优化算法。 * * 解决办法: * 使用jexl表达式,将各条件保存为表达式,数据保存时,校验即可。 * commons-jexl-2.1.1.jar */ public static void testExpr() { Expression expr; JexlContext ctxt = new MapContext(); JexlEngine jexl = new JexlEngine(); // 表达式 String exps = "if(c1>c2) {c3=0}"; expr = jexl.createExpression(exps); // case 1 ctxt.set("c1", 1); ctxt.set("c2", 2); expr.evaluate(ctxt); assertFalse((Integer) ctxt.get("c3") == (Integer) (0)); // case 2 ctxt.set("c1", 2); ctxt.set("c2", 1); expr.evaluate(ctxt); assertTrue((Integer) ctxt.get("c3") == (Integer) (0)); }}
0 0
- jexl表达式应用
- jexl解析表达式字符串
- Jexl解析表达式
- jexl解析字符串表达式
- JEXL
- 利用JEXL实现动态表达式编译
- 一种表达式语言的解析引擎JEXL简单使用
- --java--jexl
- 试用commons-jexl
- Commons JEXL 示例详解
- Apache Commons JEXL
- Java Expression Language (JEXL)
- 正则表达式的应用
- 正则表达式的应用
- 正则表达式的应用
- 正则表达式及应用
- 正则表达式应用知识
- 正则表达式应用
- Redis测试分析(pipeline模式)
- 棋牌游戏服务器架构: 详细设计(三) 数据库设计
- 第八周上机实践项目-项目三-指向学生类的指针
- iOS: ARC和非ARC下使用Block属性的问题
- PCA方法的应用场景
- jexl表达式应用
- Unity3D Terrain Settings 彻底搞懂 地形详细设置 全实验与解析 (二)base map dist
- 关于产品 和互联网产品
- SQLyog管理Mysql数据库
- 【游戏数据库】大型网络游戏数据库设计方面讨论?(微软平台) 游戏数据库
- Cocos2d-x 容器(三) Map
- android Webview加载优化
- 游戏运行效率
- Oracle客户端连接远程Oracle服务中文乱码问题