Struts2的几种OGNL表达式的用法,ONGL表达式是value里的那部分。
1. 访问值栈(value stack contents)中的属性
<s:property value="username"/>
2. 访问值栈中对象的属性(set,get)。 如果是属性也是个对象,方法和EL表达式一样 一直点儿就行
<s:property value="user.username"/>
3. 访问Action中的普通方法
<s:property value="loginUser()" />
4. 访问Action静态方法 uAction是action所在的包 静态属性同理
<s:property value="@uAction.userAction@loginUser()" />
5. 访问List 会把这个List里所有的值都显示出来。指定访问第二个: userList[1]
<s:property value="userList"/>
6. 访问List中的指定对象的属性
<s:property value="userList[0].username"/>
7. 访问map 把map里的所有的 键=值 显示出来
<s:property value="userMap"/>
8. 访问map指定键的值 显示所有键 userMap.keys 所有值 userMap.values Map长度: userMap.size()
<s:property value="userMap.uname"/>
9. 访问指定值栈的信息 [0]从上到下找username的值 [1][2][3].....就是第一个action 第二个第三个.....
<s:property value="[1].username"/>
10. 投影 过滤.. {}里判断的是userList的条件 这里的this是指当前从值栈里得到的userList, 注意1是int类型的
<s:property value="userList.{?#this.username==1}.{username}"/>
11. 过滤 条件是String类型的 不能写成 {?#this.username='a' } 可能是把a当字符去判断了。结果连空数组都不会显示
<s:property value="userList.{?#this.username==\"a\"}.{username}"/>