OGNL

OGNL是Object-Graph Navigation Language的缩写(也称为对象导航语言),它是一种功能强大的表达式语言,通过它简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能。它使用相同的表达式去存取对象的属性。

EL(Expression Language) 是为了使JSP写起来更加简单。表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP 中简化表达式的方法,让Jsp的代码更加简化。

Jsp里面有9大内置对象(12)

 

RequestScope  responseScope applicationScope pageScope pageContext params paramValues

  9大内置对象对应的就是servlet里面的对象


EL 是为了方便在这个9大内置对象中取值(属性名重复,先找小的对象)

EL表达式的语法结构

${expression}

OGNL和EL没有任何关系,只是写法有点类似。


Struts2 和OGNL的结合

  struts2 提供了一个类 ValueStack

  ValueStack 分成两部分 一部分叫做root 一部分叫做 context

  root 存的是当前的action对象

  context存的是ActionContext里面所有的内容

 


 //存值
    public void fun () throws OgnlException {

      OgnlContext oc= new OgnlContext();

 //OGNL root 存储任意一个对象

      Workers workers = new Workers("张三","66");


      oc.setRoot(workers);

// ognl context  存储map

        Map<String,Object> map = new HashMap<String, Object>();
        Workers workers2 = new Workers("李四","20");

        Workers workers3 = new Workers("王五","30");

        map.put("workers2",workers2);

        map.put("workers3",workers3);

        oc.setValues(map);



 struts2 用来接收参数的方式:给Action 添加一个属性,该属性会放到ValuesStack 中的root部分,通过ognl的方式进行赋值。



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值