<ol>
<li>访问值栈中的action的普通属性:username=<s:property value="username"/></li>
<li>访问值栈中对象的普通属性(get set方法)<s:property value="user.age"/></li>
<li>访问值栈中对象的普通属性(get set方法)<s:property value="cat.friend.name"/></li>
<li>访问值栈中对象的普通方法:<s:property value="password.length()"/></li>
<li>访问值栈中对象的普通方法:<s:property value="cat.miaomiao()"/></li>
<li>访问静态方法:<s:property value="@model.S@s()"/></li>
<li>访问静态属性:<s:property value="@model.S@STR"/></li>
<li>访问Math静态访问:<s:property value="@@max(2,3)"/></li>
<hr/>
<li>访问普通类的构造方法:<s:property value="new model.User(8)"/></li>
<li>访问list中某个元素:<s:property value="users[1]"/></li>
<li>访问list元素某个属性集合:<s:property value="users.{age}"/></li>
<li>访问list元素某个属性集合的特定值:<s:property value="users.{age}[0]"/></li>
<li>访问set:<s:property value="dogs"/></li>
<li>访问set中某个元素:<s:property value="dogs[1]"/></li>
<li>访问map:<s:property value="dogMap"/></li>
<li>访问map中某个元素:<s:property value="dogMap.dog101"/>|<s:property value="dogMap.['dog101']"/>|<s:property value="dogMap.[\"dog101\"]"/></li>
<li>访问map中所有key:<s:property value="dogMap.keys"/></li>
<li>访问map中所有value:<s:property value="dogMap.values"/></li>
<li>访问容器大小:<s:property value="dogMap.size()"/></li>
<hr/>
<li>投影(过滤):<s:property value="users.{?#this.age==1}.{age}"/></li><!--users.{?#this.age==1}返回的是集合类型 -->
<li>投影(过滤):<s:property value="users.{^#this.age>1}.{age}"/></li><!--^表示开头的元素 -->
<li>投影(过滤):<s:property value="users.{$#this.age>1}.{age}"/></li><!--$表示结尾的元素 -->
<li>投影(过滤):<s:property value="users.{$#this.age>1}.{age}==null"/></li><!-- 返回boolean类型 -->
<!-- 用{}返回集合类型 []表示第几个元素 -->
<li>[] : <s:property value="[1]"/></li><!-- 访问的是值栈中的第几个对象 --> value="[1].username" 从上往下的action中找
</ol>
<s:debug></s:debug><!-- 调试标签-->
<li>访问值栈中的action的普通属性:username=<s:property value="username"/></li>
<li>访问值栈中对象的普通属性(get set方法)<s:property value="user.age"/></li>
<li>访问值栈中对象的普通属性(get set方法)<s:property value="cat.friend.name"/></li>
<li>访问值栈中对象的普通方法:<s:property value="password.length()"/></li>
<li>访问值栈中对象的普通方法:<s:property value="cat.miaomiao()"/></li>
<li>访问值栈中action的普通方法:<s:property value="m()"/></li>
<!-- 需要在配置文件中设置常量-->
<!--打开静态方法调用的限制-->
<constant name="struts.ognl.allowStaticMethodAccess" value="true"/>
<li>访问静态方法:<s:property value="@model.S@s()"/></li>
<li>访问静态属性:<s:property value="@model.S@STR"/></li>
<li>访问Math静态访问:<s:property value="@@max(2,3)"/></li>
<hr/>
<li>访问普通类的构造方法:<s:property value="new model.User(8)"/></li>
<hr/>
<li>访问list中某个元素:<s:property value="users[1]"/></li>
<li>访问list元素某个属性集合:<s:property value="users.{age}"/></li>
<li>访问list元素某个属性集合的特定值:<s:property value="users.{age}[0]"/></li>
<li>访问set:<s:property value="dogs"/></li>
<li>访问set中某个元素:<s:property value="dogs[1]"/></li>
<li>访问map:<s:property value="dogMap"/></li>
<li>访问map中某个元素:<s:property value="dogMap.dog101"/>|<s:property value="dogMap.['dog101']"/>|<s:property value="dogMap.[\"dog101\"]"/></li>
<li>访问map中所有key:<s:property value="dogMap.keys"/></li>
<li>访问map中所有value:<s:property value="dogMap.values"/></li>
<li>访问容器大小:<s:property value="dogMap.size()"/></li>
<hr/>
<li>投影(过滤):<s:property value="users.{?#this.age==1}.{age}"/></li><!--users.{?#this.age==1}返回的是集合类型 -->
<li>投影(过滤):<s:property value="users.{^#this.age>1}.{age}"/></li><!--^表示开头的元素 -->
<li>投影(过滤):<s:property value="users.{$#this.age>1}.{age}"/></li><!--$表示结尾的元素 -->
<li>投影(过滤):<s:property value="users.{$#this.age>1}.{age}==null"/></li><!-- 返回boolean类型 -->
<!-- 用{}返回集合类型 []表示第几个元素 -->
<li>[] : <s:property value="[1]"/></li><!-- 访问的是值栈中的第几个对象 --> value="[1].username" 从上往下的action中找
</ol>
<s:debug></s:debug><!-- 调试标签-->