jexl3表达式引擎

该文章演示了如何使用ApacheCommonsJexl3库来处理各种表达式,包括常量表达式、变量表达式、自定义函数以及三元和控制流表达式。示例中详细展示了如何构建JexlEngine,设置自定义函数并进行计算,以及如何在上下文中设置变量并求值。
摘要由CSDN通过智能技术生成
JexlBuilder jexlBuilder = new JexlBuilder();
Map<String, Object> functions = new HashMap<>();
functions.put("name", new PriceFunction());
jexlBuilder.namespaces(functions);
JexlEngine jexlEngine = jexlBuilder.create();

OrderDto orderDto = new OrderDto();
List<OrderDto.OrderItemDto> orderItemDtos = new ArrayList<>();
orderItemDtos.add(new OrderDto.OrderItemDto(1, 2, "product1"));
orderItemDtos.add(new OrderDto.OrderItemDto(3, 4, "product2"));
orderDto.setOrderItems(orderItemDtos);
String expressionStr = "name:excute(order.orderItems)";
JexlExpression expression = jexlEngine.createExpression(expressionStr);
MapContext mapContext = new MapContext();
mapContext.set("order", orderDto);
Object evaluate = expression.evaluate(mapContext);
System.out.println(String.format("应支付金额:%s", evaluate));

1、依赖

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值