<h4>OGLN表达式学习</h4>
<ol>
<li>访问值栈中的普通属性-----userName : <s:property value="userName"/> </li>
<li>访问值栈中的对象属性-----user.name : <s:property value="user.name"/></li>
<li>访问值栈中的对象普通方法-----user.name : <s:property value="user.name.length()"/></li>
<li>访问值栈中的action的方法-----userAction m() : <s:property value="m()"/></li>
<hr/>
<li>访问action中静态属性: UserAction.USER_NAME <s:property value="@com.labinfo.action.UserAction@USER_NAME"/></li>
<li>访问action中静态方法: UserAction.sMethod <s:property value="@com.labinfo.action.UserAction@sMethod()"/></li>
<li>访问Math类中的静态方法:max(2,3) return <s:property value="@java.lang.Math@max(2,3)"/></li>
<hr/>
<li>普通类User的构造方法 <s:property value="new com.labinfo.domain.User('mingming')"/></li>
<hr/>
<li>访问action中的list:<s:property value="users"/></li>
<li>访问action中的list中的某个属性:<s:property value="users[0]"/></li>
<li>访问action中的list中的某个属性值:<s:property value="users[0].name"/></li>
<li>访问action中的list中的某个属性值的集合:<s:property value="users.{age}"/></li>
<li>访问action中的list中的某个属性的特定值:<s:property value="users.{age}[0]"/></li>
<hr/>
<li>访问action中的Set中所有元素<s:property value="dogs"/></li>
<li>访问action中的Set中某个元素<s:property value="dogs[1]"/></li>
<hr>
<li>访问action中的Map中某个元素<s:property value="cats['cat1']"/></li>
<li>访问action中的Map中Keys<s:property value="cats.keys"/></li>
<li>访问action中的Map中Values<s:property value="cats.values"/></li>
<hr/>
<li>访问action中的users中某个age=5的user;?表示某一个<s:property value="users.{?#this.age==5}[0]"/></li>
<li>投影,访问action中users中第一个age小于10的user,并且把选出age。^表示选择第一个。age=<s:property value="users.{^#this.age < 10}.{age}"/></li>
<li>投影,访问action中users中最后一个age小于10的user,并且把选出age。$表示选择最后一个。age=<s:property value="users.{$#this.age < 10}.{age}"/></li>
</ol>
<ol>
<li>访问值栈中的普通属性-----userName : <s:property value="userName"/> </li>
<li>访问值栈中的对象属性-----user.name : <s:property value="user.name"/></li>
<li>访问值栈中的对象普通方法-----user.name : <s:property value="user.name.length()"/></li>
<li>访问值栈中的action的方法-----userAction m() : <s:property value="m()"/></li>
<hr/>
<li>访问action中静态属性: UserAction.USER_NAME <s:property value="@com.labinfo.action.UserAction@USER_NAME"/></li>
<li>访问action中静态方法: UserAction.sMethod <s:property value="@com.labinfo.action.UserAction@sMethod()"/></li>
<li>访问Math类中的静态方法:max(2,3) return <s:property value="@java.lang.Math@max(2,3)"/></li>
<hr/>
<li>普通类User的构造方法 <s:property value="new com.labinfo.domain.User('mingming')"/></li>
<hr/>
<li>访问action中的list:<s:property value="users"/></li>
<li>访问action中的list中的某个属性:<s:property value="users[0]"/></li>
<li>访问action中的list中的某个属性值:<s:property value="users[0].name"/></li>
<li>访问action中的list中的某个属性值的集合:<s:property value="users.{age}"/></li>
<li>访问action中的list中的某个属性的特定值:<s:property value="users.{age}[0]"/></li>
<hr/>
<li>访问action中的Set中所有元素<s:property value="dogs"/></li>
<li>访问action中的Set中某个元素<s:property value="dogs[1]"/></li>
<hr>
<li>访问action中的Map中某个元素<s:property value="cats['cat1']"/></li>
<li>访问action中的Map中Keys<s:property value="cats.keys"/></li>
<li>访问action中的Map中Values<s:property value="cats.values"/></li>
<hr/>
<li>访问action中的users中某个age=5的user;?表示某一个<s:property value="users.{?#this.age==5}[0]"/></li>
<li>投影,访问action中users中第一个age小于10的user,并且把选出age。^表示选择第一个。age=<s:property value="users.{^#this.age < 10}.{age}"/></li>
<li>投影,访问action中users中最后一个age小于10的user,并且把选出age。$表示选择最后一个。age=<s:property value="users.{$#this.age < 10}.{age}"/></li>
</ol>