java将字符串转换成可执行代码

使用commons的jexl可实现将字符串变成可执行代码的功能

通用工具类:

/** *  * @author: Longjun * @Description: 使用commons的jexl可实现将字符串变成可执行代码的功能 * @date:2016年3月21日 下午1:45:13 */  public static Object convertToCode(String jexlExp,Map<String,Object> map){    JexlEngine jexl=new JexlEngine();    Expression e = jexl.createExpression(jexlExp);    JexlContext jc = new MapContext();    for(String key:map.keySet()){    jc.set(key, map.get(key));    }    if(null==e.evaluate(jc)){    return "";    }    return e.evaluate(jc);    }    

调用示例1:

public static void main(String[] args) {  try {  Map<String,Object> map=new HashMap<String,Object>();   map.put("money",2100);    String expression="money>=2000&&money<=4000";    Object code = convertToCode(expression,map);  } catch (Exception e) {  // TODO Auto-generated catch block  e.printStackTrace();  }  }  

code输出是true;


调用示例2:

public static void main(String[] args) {  try {  Map<String,Object> map=new HashMap<String,Object>();    map.put("testService",testService);    map.put("person",person);    String expression="testService.save(person)";    convertToCode(expression,map);    } catch (Exception e) {  // TODO Auto-generated catch block  e.printStackTrace();  }  }  

所需jar包:commons-jexl-2.0.jar

下载连接:http://download.csdn.net/detail/junlong750/9468052

maven配置:

<dependency>  <groupId>org.apache.commons</groupId>  <artifactId>commons-jexl</artifactId>  <version>2.0</version>  
</dependency>  


转载:https://blog.csdn.net/junlong750/article/details/50945883

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/413071.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

22.敏捷估计与规划——Why Agile Planning Works笔记

00.经常进行重规划&#xff0c;是敏捷规划和估计为有效探索新产品开发解决方案控件提供支持的方法之一。在每次迭代开始时&#xff0c;都要建立该迭代的计划。发布计划要么在每次迭代后背更新&#xff0c;或者最差的时候也要在每几次迭代后被更新。计划要保持有用&#xff0c;就…

[css] 当全国哀悼日时,怎么让整个网站变成灰色呢?

[css] 当全国哀悼日时&#xff0c;怎么让整个网站变成灰色呢&#xff1f; body{-webkit-filter: grayscale(1);filter: grayscale(1); }/* OR */body{-webkit-filter: grayscale(100%);filter: grayscale(100%); }个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识…

jeesite使用心得(一)

<update id"updateSelective">UPDATE ${table.name} <set> <#list table.columnList as c><#if c.isEdit?? && c.isEdit "1"><if test"${c.javaFieldId} ! null" >${c.name} ${"#"}{${c.ja…

java List集合转换为List Map集合

/*** 将List<Object>转换为List<Map<String,Object>>* param list* return*/private List<Map<String,Object>> convertListMap(List<Object> list){List<Map<String,Object>> mapsnew ArrayList<Map<String,Object>…

[css] 如果给一个元素设置background-color,它的颜色会填充哪些区域呢?

[css] 如果给一个元素设置background-color,它的颜色会填充哪些区域呢&#xff1f; 个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

jeesite使用心得(二)

按照上一篇的内容&#xff0c;有一些缺陷的地方。分页对象传什么都可以&#xff0c;但是返回的是list<HashMap<String,Object>>集合的话&#xff0c;分页方法就是无效了。这里把我写的贴一下: Controller: // 带条件分页Integer pageNo null;Integer pageSize …

jqgrid删除某一列(隐藏)

$("#jqGrid_table").setGridParam().hideCol("列的名字");//隐藏 $("#jqGrid_table").setGridParam().showCol("列的名字");//显示

一个设计项调另一个设计项(支持多选传值)

//方案管理中起企业按钮中的前端代码function(button, record, e) {debugger; // 中断调试指令&#xff0c;可以手动删除它var me this; // this 为列表视图控制器var viewModel this.getViewModel(); // 获取视图模型var grid this.getView();…

[css] 使用css3做一个魔方旋转的效果

[css] 使用css3做一个魔方旋转的效果 总的来说&#xff0c;用了一些 3D 效果的样式&#xff0c;如 translate3d&#xff0c;rotate3d&#xff0c;perspective&#xff0c;transform-style: preserve-3d; 等&#xff0c;感兴趣的可以去看看它的样式文件个人简介 我是歌谣&…

linux安装elasticsearch5.5

大家好&#xff0c;我是烤鸭: 我是采用官网下载tar包的方式安装的。 安装环境&#xff1a;centos 7.2,jdk1.8 下载地址: https://www.elastic.co/downloads/elasticsearch 1.解压缩&#xff1a; 解压 elasticsearch.5.5.2.tar.gz tar -zxvf elasticsearch-5.2.2.tar.gz2.创…

eclipse创建folder变成package解决方案

1,项目右键—-选择properties 2,选择Java Build Path—-选择Source 3,选择xxxx/src/main/resources下面的Excluded,点击Edit 4,在Exclusion patterns下面选中第一个&#xff0c;点击右边的edit 5,方案一&#xff1a;在Browse按钮左边的输入框修改为 ** 方案二&#xff1a;…

[css] 手写一个使用css3旋转硬币的效果

[css] 手写一个使用css3旋转硬币的效果 两种实现方式&#xff1a;1、animationkeyframes 2、transition&#xff1a; //第一种实现方式 <style type"text/css"> .around{ width:200px; height:200px; background:orange; /*圆形的话看不出效果&#xff0c;所以…

0076-小升初1:生日蛋糕

题目 小升初1&#xff1a;生日蛋糕难度级别&#xff1a;B&#xff1b; 运行时间限制&#xff1a;1000ms&#xff1b; 运行空间限制&#xff1a;256000KB&#xff1b; 代码长度限制&#xff1a;2000000B 试题描述一个中学生&#xff08;在线测评系统的系统管理员&#xff09;过生…

tomcat9-jenkins:insufficient free space available after evicting expired cache entries-consider

解决该问题方法&#xff0c;修改tomcat/conf/context.xml文件&#xff0c;增加资源最大可缓存的大小&#xff1a;<Context><!-- Default set of monitored resources. If one of these changes, the --><!-- web application will be reloaded. …

[css] height和line-height的区别是什么呢?

[css] height和line-height的区别是什么呢&#xff1f; height&#xff1a;元素content area的高度line-height&#xff1a;元素中&#xff0c;多行文字基线的距离个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大…

laydate根据开始时间或者结束时间限制范围

$(window).load(function(){//初始化时间控件var cartimeDate laydate.render({elem: #cartime //用车时间,type: datetime,format: yyyy-MM-dd HH:mm,done:function(value, date){returntimeDate.config.mingetDateArray(date);//重点}});var returntimeDate laydate.render…

Django Form -- 字段的用法扩展

form.py的代码 from django import forms from django.forms import fields from django.forms import widgetsclass DetailForm(forms.Form):inp fields.CharField()required inp fields.CharField(requiredFalse)  #表单可以为空 inp fields.CharField(requiredTrue) …

linux部署jenkins,tomcat9

大家好&#xff0c;我是烤鸭&#xff1a;今天分享的是 linux部署jenkins,tomcat9 安装环境&#xff1a;linux centos7.2tomcat 9.1Jenkins 2.73JDK 1.8maven 3.5git 2.91. 下载jenkins&#xff1a;https://jenkins.io/download/ 我选择的war下载。2. 安装…

[css] 请用css写一个扫码的加载动画图

[css] 请用css写一个扫码的加载动画图 Keyframes donut-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .donut { display: inline-block; border: 4px solid rgba(0, 0, 0, 0.1); border-left-color: #7983ff; border-radius: 50%; width: 3…

java.lang.OutOfMemoryError: PermGen space及其解决方法

Run—-Debug Configurations -Xms2096m -Xmx2096m -XX:MaxNewSize2096m -XX:MaxPermSize2096m