OGNL

Struts2框架是基于HttpServletRequest请求的,框架在处理每个请求时,都会创建该请求的运行环境,并将请求对应的Action放入其中,Action对象被放在值栈对象上,User对象作为javaBean的一个属性被暴露出来,值栈本身放在运行环境中。
在处理请求的过程中,所有业务数据对象都保存在值栈中,值栈充当了一个容器,通过它,在框架的各个地方可以随时访问这些业务对象,在生成页面的过程中,页面标签也可以访问值栈。
 
为什么值栈是一个虚拟对象??
假如栈内存中放了多个对象,且存在相同的名称时,先找到的对象的属性就作为”虚拟“对象的属性。
 
 
struts2会实例化任何用于填充数据的对象。
 
List:
不需要初始化任何一个List,
如果没有类型说明,任意一个List中的元素都是String类型。
 
 
OGNL表达式是由属性链构成的。
 
 
 
访问集合对象:
iterator标签在迭代过程中会把迭代的每一个对象暂时压入值栈的栈顶,这样在该标签内部可以直接访问元素属性和方法,就可以用不带value的property标签输出数据。
对于集合对象的访问,还有以下几种情况:
1.访问列表或数组的某一个元素,可以用属性名【index】
userLIst【1】.name
2.访问Map的某一个元素,可以用属性名【key】
userMap【key】.name
3.通过size或length访问集合长度。
 
 
<set name="变量名"   value="值默认Object类型"  scope="作用域">
scope的值可以是:page、request、session、application、action(默认)
 
 
 
posted @ 2019-07-12 10:00  TangXinPing  阅读(228)  评论(0编辑  收藏  举报