Ognl表达式引擎之抽象语法树(ASTs)

本文探讨Ognl表达式引擎如何利用抽象语法树(ASTs)进行取值操作。通过示例代码,展示了在数据流转中的应用,并期望引发深入讨论。虽然可能存在误差,但目的是激发对Ognl更深层次的理解。
摘要由CSDN通过智能技术生成

1.说明:结合ASTs演示Ognl取值机制,“此SAMPLE演示数据流转中的其中一环”
2.能力有限,有误差的请包含或指证
3.目的:抛砖引玉
4.内容:以下为主代码内容,javaBean(User和Company)就不贴出来了,看代码里的setter就可以构造出javaBean了
这里写图片描述

这里写图片描述



import java.util.HashMap;
import java.util.Map;

import ognl.Ognl;
import ognl.OgnlException;

/**
 * 此SAMPLE主要演示表达式解析:Ognl.parseExpression(param)
 * 用到了抽象语法树abstract systax trees (ASTs)
 * JJTree interface for AST nodes:
 *      1.ASTProperty-->PropertyAccessor
 *      2.ASTVarRef
 *      3.ASTChain
 *      4.ASTEval
 *      5.ASTStaticMethod
 *      6.ASTStaticFiled
 *      7.ExceptioinNode等
 *  
 * AST Nodes作用:在节点之间提供一种构建父子关系的机制
 * 
 * 思路:通过传递的参数param进行解析,构建相应的Node节点,
 *      然后节点处理最终数值获取的业务逻辑(附流程图JJTree.jpg和Ognl取值流程图.jpg)
 * @author 拈花为何不一笑
 * @since   3/21/2018
 */
public class OgnlExpEngine2 {
    

    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值