Structs2学习(四)
创始人
2025-05-29 00:49:23
0

一、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
在这里插入图片描述

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...