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

相关内容

热门资讯

保存时出现了1个错误,导致这篇... 当保存文章时出现错误时,可以通过以下步骤解决问题:查看错误信息:查看错误提示信息可以帮助我们了解具体...
汇川伺服电机位置控制模式参数配... 1. 基本控制参数设置 1)设置位置控制模式   2)绝对值位置线性模...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
表格中数据未显示 当表格中的数据未显示时,可能是由于以下几个原因导致的:HTML代码问题:检查表格的HTML代码是否正...
本地主机上的图像未显示 问题描述:在本地主机上显示图像时,图像未能正常显示。解决方法:以下是一些可能的解决方法,具体取决于问...
表格列调整大小出现问题 问题描述:表格列调整大小出现问题,无法正常调整列宽。解决方法:检查表格的布局方式是否正确。确保表格使...
不一致的条件格式 要解决不一致的条件格式问题,可以按照以下步骤进行:确定条件格式的规则:首先,需要明确条件格式的规则是...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...