ognl概述
使用struts2标签
(1)jsp中使用jstl时,导入jar包,在jsp页面中引入标签库,同样使用struts2标签时,在jsp中引入标签库
ognl的jar包:ognl.jar
(2)使用struts标签实现操作
什么是值栈?
获取值栈对象
值栈内部结构
Context内部结构
向值栈中放数据
(1)获取值栈对象,调用对象里面的set方法
(2)获取值栈对象,调用对象里面的push方法
(3)在action中定义变量,生成变量的get方法(最常用:数据直接存放在action中,节省内存空间)
向值栈中放对象
(1)定义对象变量
(2)生成对象变量的get方法
(3)给对象变量设置值
向值栈中放list集合
(1)定义list集合变量
(2)生成list变量的get方法
(3)将数据存入list变量中
从值栈中取数据
*使用struts2标签+ognl表达式获取值栈数据<s:property value="gonl表达式">*
从值栈中取出字符串
(1)向值栈中存放字符串(前边有)
(2)使用标签获取(value的值就是前边定义的变量的名称)
从值栈中取对象
(1)向值栈中存放对象(前边有)
(2)使用标签获取
从值栈中取list集合
(1)第一种(值固定,比较复杂):
(2)第二种(常用方式):
(3)第三种(常用方式):
其他操作方式
(1)获取set方法设置的值(set设置值得方式上边有)
(2)获取push方法设置的值(push设置值得方式上边有)
使用push方法设置值,没有名称,只有设置的值。向值栈中放数据,会把值栈数据存放到数组里面,数组名称是top,可以根据数组名称获取值
下面方法得到的是栈顶的值,也就是数组的第一个值
EL表达式获取值栈数据(为什么可以呢?)
使用EL表达式首先要导入jar包:jstl.jar和standard.jar,然后在jsp页面上面引入jar包,<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>
ognl中#和%的使用
#的使用(主要用在<s:iterator>标签中
#是获取context中的数据**
案例 :向request域放值,在页面中使用ognl获取
%的使用(性能比较低,一般不用)
(1)在struts2标签中的表单标签中使用ognl表达式
在struts2标签里面使用ognl表达式,如果直接在struts2表单里面直接使用ognl表达式不识别,只有%后才会识别。