ONGL表达式

  • ongl介绍
    • ognl并不属于struts2
    • OGNL的全称是Object Graph Navigation Language(对象图导航语言),它是一种强大的表达式语言
    • OgnlContext(ongl上下文)其实就是Map<String,Object>
      • OgnlContext=根对象(1)+非根对象(N)
        • 根对象在ognlContext中有且只有一个,非根对象可以有多个
        • 非根对象要通过"#key"访问,根对象可以省略"#key"
    • EL:表达式${} ongl:表达式#{}
      ongl表达式在取值是会识别表达式中的符号
    • Ongl的数据结构为指栈,即先进后出
    • Ongl表达式的取值优先度与session相同,都是从小到大
  • 使用例
    • 创建ongl上下文及取值赋值
      • 源码

      • 创建上下文

      • 把值传入创建的上下文

    • 取值

  • 工作流程
    • 在用户发送请求,struts2就会创建一个ActionContext对象,以此来保证同一请求中只创建一个上下文
      为了效率最大化的利用ActionContext对象,并且让用户的请求顺利的发送到后端
      所以在获取前端的值时,struts2会用ongl表达式来保存
      通过对象依次获取作用域中的值并加入ongl中
      ongl的数据结构保证了数据的有序性
      在struts2中,类名会在ongl中作为根对象保存
      struts2优先赋值对象的原因式因为,通过ModelDriven获取属性值时,ongl会优先把其对应的泛型作为根对象,所以在赋值时,会优先找到根对象中又此属性的对象进行赋值
    • 传参
      通过ActionContext对象.setName()
      ActionContext对象.Parameters()
      ActionContext.setValueStack()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值