Structs2学习(四)
创始人
2025-05-29 01:49:06
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
在这里插入图片描述

相关内容

热门资讯

AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWR报告解读 WORKLOAD REPOSITORY PDB report (PDB snapshots) AW...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
群晖外网访问终极解决方法:IP... 写在前面的话 受够了群晖的quickconnet的小水管了,急需一个新的解决方法&#x...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
Azure构建流程(Power... 这可能是由于配置错误导致的问题。请检查构建流程任务中的“发布构建制品”步骤,确保正确配置了“Arti...