Struts2 “.”和“[]”操作符:获取ActionContext中的所有内容
Struts2 框架在 OGNL 的基础上得到了增强,提高了 Struts2 对数据的访问能力。在 Struts2 框架中,OGNL 上下文作用于 Struts2 中的 ActionContext 对象,ActionContext 对象是 Struts2 框架中的一个核心对象。
在 Struts2 框架中,当接收到一个 Action 请求时,Struts2 框架会创建 ActionContext 对象并示例化值栈等对象,由于 OGNL 上下文作用于 ActionContext 对象,因此通过 OGNL 表达式可以获取 ActionContext 中的所有内容,而获取这些内容时使用的是“.”和“[]”操作符。
上述代码分别相当于调用了 application.getAttribute("name")、request.getAttribute("name")、session.getAttribute("name")、request.getParameter("name")方法。
创建 OgnlAction.action 文件,在其中定义变量和编写 get 方法和 set 方法。
创建 index.jsp 文件,应用“#”获取相应资源的属性,关键代码如下:
request.userName:这个属性来自request
session.userName:这个属性来自session
application.userName:这个属性来自application
在 Struts2 框架中,当接收到一个 Action 请求时,Struts2 框架会创建 ActionContext 对象并示例化值栈等对象,由于 OGNL 上下文作用于 ActionContext 对象,因此通过 OGNL 表达式可以获取 ActionContext 中的所有内容,而获取这些内容时使用的是“.”和“[]”操作符。
语法:
#application|request|session|attr|parameters.name
或#application|request|session|attr|parameters.['name']
这两个操作符用于获取 ActionContext中 的所有内容,即获取 application、request、session、attr 和 parameters。上述代码分别相当于调用了 application.getAttribute("name")、request.getAttribute("name")、session.getAttribute("name")、request.getParameter("name")方法。
示例
本示例使用“#”来读取 ActionContext 对象中的一些数值,然后将获取的数据输出到页面中。创建 OgnlAction.action 文件,在其中定义变量和编写 get 方法和 set 方法。
创建 index.jsp 文件,应用“#”获取相应资源的属性,关键代码如下:
<body>//使用“#”获取属性 <p>request.userName:<s:property value="#request.userName"/></p> <p>session.userName:<s:property value="#session.userName"/></p> <p>application.userName:<s:property value="#application.userName"/></p> <p>attr.userName:<s:property value="#attr.userName"/></p> </body>}运行结果如下:
request.userName:这个属性来自request
session.userName:这个属性来自session
application.userName:这个属性来自application
所有教程
- socket
- Python基础教程
- C#教程
- MySQL函数
- MySQL
- C语言入门
- C语言专题
- C语言编译器
- C语言编程实例
- GCC编译器
- 数据结构
- C语言项目案例
- C++教程
- OpenCV
- Qt教程
- Unity 3D教程
- UE4
- STL
- Redis
- Android教程
- JavaScript
- PHP
- Mybatis
- Spring Cloud
- Maven
- vi命令
- Spring Boot
- Spring MVC
- Hibernate
- Linux
- Linux命令
- Shell脚本
- Java教程
- 设计模式
- Spring
- Servlet
- Struts2
- Java Swing
- JSP教程
- CSS教程
- TensorFlow
- 区块链
- Go语言教程
- Docker
- 编程笔记
- 资源下载
- 关于我们
- 汇编语言
- 大数据
- 云计算
- VIP视频