首页 > 其他分享 >jexl3表达式引擎

jexl3表达式引擎

时间:2022-11-21 21:22:53浏览次数:54  
标签:灾害 gradeName grade jexl3 jexlContext 引擎 Jexl 表达式

Java-Apache Commons Jexl3-动态表达式判断

转自:https://www.cnblogs.com/yqk150/p/14367542.html

 

pom.xml引入maven坐标

<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-jexl3 -->
  <dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-jexl3</artifactId>
    <version>3.1</version>
  </dependency>

 

使用

/**
     * Jexl表达式计算
     */
    @Test
    public void jexlUseFun() {
        // 初始化Jexl构造器
        JexlBuilder jexlBuilder = new JexlBuilder();
        // 创建Jexl表达式引擎
        JexlEngine jexlEngine = jexlBuilder.create();
        // 创建Jexl表达式解析器
        JexlScript jexlScript = jexlEngine.createScript("if(tem>=25){grade=1;gradeName='有灾害';}else{grade=0;gradeName='无灾害';}");
        // 创建Jexl表达式变量上下文
        JexlContext jexlContext = new MapContext();
        jexlContext.set("tem", 15);
        // 执行Jexl表达式,得到结果
        jexlScript.execute(jexlContext);
        System.out.println(jexlContext.get("grade"));
        System.out.println(jexlContext.get("gradeName"));
    }
**注意**:Jexl引擎能够创建两种解析器,其中JexlExpression不能使用 if、for、while 语句块。
  正确:JexlScript jexlScript = jexlEngine.createScript("if(tem>=25){grade=1;gradeName='有灾害';}else{grade=0;gradeName='无灾害';}");   错误:JexlExpression jexlExpression = jexlEngine.createExpression("{if(tem>=25){grade=1;gradeName='有灾害';}else{grade=0;gradeName='无灾害';}}");

标签:灾害,gradeName,grade,jexl3,jexlContext,引擎,Jexl,表达式
From: https://www.cnblogs.com/chyf1990/p/16913280.html

相关文章

  • java lambda 表达式 加不加大括号的问题
     1.如果方法体为表达式,算式,可以不加大括号Arrays.sort(startEnd, (o1,o2) -> o1[0] == o2[0] ? o1[1] - o2[1] : o1[0] - o2[0]);2.如果要加大括号,则......
  • 全文搜索引擎solr使用过程中遇到的一些问题分析
    产生背景​ 在整个项目中实现商品搜索功能电商项目中,因为用户有时候不是多么清楚他所需要的东西的名称或者商店的名称,有时候仅仅是只知道他所需要的商品是干嘛用的,又或者是......
  • 正则表达式
     正则表达式好处:正则的出现,对字符串的复杂操作变得更为简单。特点:将对字符串操作的代码用⼀些符号来表示。只要使用了指定符号,就可以调用底层的代码对字符串进⾏操作。......
  • java 使用正则表达式
    java使用正则表达式正则表达式,又称规则表达式,正则表达式通常被用于判断语句中,来检查某一字符串是否满足某一格式,正则表达式是育有特殊意义的字符串,这些特殊字符串被......
  • 精通正则表达式(Regular Expression)- 语法
    正则表达式是强大,便捷,高效的文本处理工具。正则表达式本身,加上如同一门袖珍编程语言的通用模式表示法,赋予使用者描述和分析文本的能力。配合上特定工具提供的额外支持,正则......
  • Java中使用脚本引擎运行脚本语言
    在Java中运行脚本语言,例如JavaScript。步骤:1、创建脚本引擎管理器ScriptEngineManager2、从管理器中获取一个引擎ScriptEngine3、通过put(key,valu......
  • 包装类 正则表达式
    包装类packagecom.api.integer;//包装类publicclassTest{publicstaticvoidmain(String[]args){inta=10;Integerb=11;S......
  • Mysql数据库引擎MYISAM和INNODB详解
    一、数据库​​引擎​​数据库引擎是用于存储、处理和保护数据的核心服务。利用数据库引擎可控制访问权限并快速处理事务,从而满足企业内大多数需要处理大量数据的应用程......
  • 【正则表达式 】常见密码正则表达式
    第一种至少8-16个字符,至少1个大写字母,1个小写字母和1个数字,其他可以是任意字符: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[^]{8,16}$//^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[\s\S]{8,......
  • 【正则匹配】正则表达式的先行断言(lookahead)和后行断言(lookbehind)
    原文:https://www.runoob.com/w3cnote/reg-lookahead-lookbehind.html正则表达式的先行断言和后行断言简述(?=pattern)正向先行断言(?!pattern)负向先行断言(?<=pat......