Structs2学习(四)
创始人
2025-05-29 00:30:21

一、OGNL的概述:

1,什么是OGNL:
在这里插入图片描述
OGNL:对象图导航语言,比EL表达式强大很多倍的语言。

  • EL:从域对象中获取数据,从EL的11个对象中获取。${name} ${pageContext.request.contextPath}
  • OGNL:调用对象的方法,获取Structs2的值栈的数据。OGNL其实是第三方的表达式语言,及时不在Structs2里面也能在java中运行。

2.为什么学习OGNL:
在这里插入图片描述
3.OGNL的使用要素:

  • 表达式
  • 根对象
  • Context对象

二、OGNL在java环境下的入门(了解)

1.访问对象的方法:
在这里插入图片描述

2、访问对象的静态方法:
在这里插入图片描述
3.获得root中的数据:
在这里插入图片描述
4.访问context中的数据:
在这里插入图片描述

三、OGNL在Structs2环境下的入门:

1、访问对象的方法:
在这里插入图片描述

2、访问对象静态的方法:
在这里插入图片描述

默认情况下不会开启静态方法,必须在配置文件中手动开启

在这里插入图片描述

四、值栈的概述:

1、什么是值栈:
在这里插入图片描述
ValueStack其实类似于一个数据中转站(Structs2的框架当中的数据就都保存到了ValueStack中)

  • ValueStack接口,实现类OgnlValueStack对象
  • ValueStack贯穿整个Action的生命周期。(Action一旦创建了,框架就会创建一个ValueStack对象)

2、值栈的内部结构:
在这里插入图片描述
值栈内部结构:
在这里插入图片描述

3、值栈与ActionContext的关系:
在这里插入图片描述

4、获得值栈:

1)通过ActionContext获取值栈:
2)通过request对象获取值栈:
在这里插入图片描述
注:两种方式获得的ValueStack方式是同一个。因为在一个Action实例当中获得的一个ValueStack的实例,所以上诉代码返回值为true

5、操作值栈:
在这里插入图片描述
方式一:
在这里插入图片描述
在这里插入图片描述

方式二:
在这里插入图片描述
在这里插入图片描述

6、获取值栈数据:

获取值栈中的数据就是在页面中使用OGNL表达式即可

1)获取root数据:
在这里插入图片描述
在这里插入图片描述

2)获取context数据:
在这里插入图片描述
在这里插入图片描述

7、EL如何访问值栈的数据:

在这里插入图片描述

五、OGNL中特殊字符:

1.#号

1)获取context数据:
在这里插入图片描述

2)使用#构建Map集合:
在这里插入图片描述

2、%号:

1)强制解析OGNL:
在这里插入图片描述

2)强制不解析OGNL:

property里面的OGNL是一定会解析的,加上%就强制转换成字符串,不让解析。
在这里插入图片描述

3、$号:

在配置文件中使用OGNL
在这里插入图片描述

相关内容

热门资讯

李子柒公司今年已成功注册多枚商... 11月12日消息,今日,李子柒发布视频官宣回归,消息引发多方关注,登上热搜。天眼查商业履历信息显示,...
明亚保险经纪遭前员工举报违规销... 11月12日消息,一名明亚保险经纪前员工实名举报该公司违法组织销售境外保险一事引起广泛关注。从监管部...
黑芝麻今日上演地天板,国盛证券... 11月12日消息,黑芝麻今日上演地天板,成交额20.18亿元,换手率40.59%,盘后龙虎榜数据显示...
我国逐渐形成高效的汽车整车综合... 11月12日消息,中国物流与采购联合会今天在2024中国汽车物流行业年会上发布《中国汽车物流发展报告...
花旗:投资者开始获利了结,美股... 11月12日消息,花旗集团策略师表示,随着投资者开始获利了结,美国股市在大选后的反弹可能会失去动力。...