OGNL表达式的作用和spring里的el表达式基本一样,主要作用是将服务端传过来的java对象根据对象的属性的方式显示在页面上,优点是利于维护,而且可读性较强。
1,ognl表达式的写法是<s:property value="***"/>
输出基本类型的写法为<s:property value="基本类型变量名称"/>
对象类型(引用类型)写法为<s:property value="对象名.属性名" />
以上两种是最常用的写法,还有一些是不常用的
输出数组的某一项:<s:property value="array[1]"/>
输出集合的某一项:<s:property value="arrayList[1]"/>
输出map的某一项:<s:property value="map[2]"/>
使用对象方法:<s:property value="name.toUpperCase()"/>,一般能够输出结果的都是返回字符串的方法
创建集合:<s:property value="{1,2,3,4,'asd'}"/>,这种写法是创建一组数据,而不是从action获取数据
输出集合的长度<s:property value="{1,2,3,4,'asd'}.size()"/>
创建Map:<s:property value="#{'key':'123','key2':'434'}"/>,这种写法是创建一组数据,而不是从action获取数据
输出集合类型名称:<s:property value="#{'key':'123','key2':'434'}.getClass().getName()" />
在ognl表达式里,#开头代表该数据类型是Map,而且写法好JSON字符串类似,都是{}开头结尾,里面的元素结构为key:value
2.valueStack
valueStack是一个将Action传来的数据进行封装在jsp页面上体现出来的媒介。