struts2: OGNL表达式、OGNL表达式与struts2结合
OGNL表达式
OGNL:对象视图导航语言. ${user.addr.name} 这种写法就叫对象视图导航.
OGNL不仅仅可以视图导航.支持比EL表达式更加丰富的功能.
使用OGNL准备工作
导包:struts2 的包中已经包含了.所以不需要导入额外的jar包。
代码准备
语法:
基本取值
赋值
调用方法
调用静态方法
创建对象(List,Map)
OGNL与Struts2的结合
结合原理
ValueStack中的两部分
栈原理
栈是由ArrayList模拟的
栈中的两个方法的实现
访问栈中属性的特点.由上到下
查看值栈中两部分内容(使用DEBUG标签)
Root
默认情况下,栈中放置当前访问的Action对象
Context
Context部分就是ActionContext数据中心
struts2与ognl结合体现
参数接收
如何获得值栈对象,值栈对象与ActionContext对象是互相引用的
配置文件中
取出值语法:${ognl表达式}
struts2_day03
一.ognl表达式
准备工作:
1.导包 - 包含在struts2包中
2.OGNLContext
|-Root 任意对象
|-Context Map
语法:
1.取值
2.赋值
3.调用方法
4.调用静态方法
5.创建List|Map
二.OGNL与Struts2的整合
Struts2为ognl准备了一个ValueStack对象,作为ognl取值范围
ValueStack
|-Root 栈
|-Context ActionContext(数据中心)
栈 => 默认放置当前访问的Action对象
ActionContext
|- request
|- response
|- servletContext
|- requestScope
|- sessionScope
|- applicationScope
|- parameters
|- attrs
......
OGNL与Struts2结合的应用
|- 参数接收 => struts2中的参数是交给ognl引擎处理
|- 配置文件中 => ${ognl表达式}
|- 标签(今天讲)
一.ognl表达式
准备工作:
1.导包 - 包含在struts2包中
2.OGNLContext
|-Root 任意对象
|-Context Map
语法:
1.取值
2.赋值
3.调用方法
4.调用静态方法
5.创建List|Map
二.OGNL与Struts2的整合
Struts2为ognl准备了一个ValueStack对象,作为ognl取值范围
ValueStack
|-Root 栈
|-Context ActionContext(数据中心)
栈 => 默认放置当前访问的Action对象
ActionContext
|- request
|- response
|- servletContext
|- requestScope
|- sessionScope
|- applicationScope
|- parameters
|- attrs
......
OGNL与Struts2结合的应用
|- 参数接收 => struts2中的参数是交给ognl引擎处理
|- 配置文件中 => ${ognl表达式}
|- 标签(今天讲)