OGNL表达式常用用法Object Graph Navgation Laguage对象图导航语言

        使用domain modal接收参数时,在struts2中,struts2会帮我们new一个domain modal对象,同时帮我们把domain modal对象的属性赋值。当不传参数时,struts2也不会帮我们new一个对象,这时我们可以自己new一个。如果domain modal没有参数为空的构造方法,那么struts2将不能帮我们new一个对象。

    访问值栈中的action的普通属性:<br>
    <!--
       value后面的表达式是ognl表达式,property标签的value是一个Object类型,
       struts2将自动转成ognl表达式,到值栈或者actionContext中取值。
   -->
     username=<s:property value="username"/><br/>
     passwd=<s:property value="passwd"/><br>
     访问值栈中的action的普通属性(get set):<br/>
     username=<s:property value="user.username"/><br/>
     passwd=<s:property value="user.passwd"/><br/>
     catName=<s:property value="cat.catName"/><br/>
     <!--  类中包含类的访问,用.-->
     dogName=<s:property value="cat.friend.name"/><br/>
     访问值栈对象的普通方法:<br/>
     passwd字符串的长度:<s:property value="passwd.length()"/><br/>
              调用cat哭的方法:<s:property value="cat.cry()"/><br/>
     调用action的普通方法:<BR/>
     action的sayHello方法返回值:<s:property value="sayHello()"/><br/><hr>
  访问静态的方法:<br/>
  <!-- @类的全路径名@静态方法名 -->
      静态方法:<s:property value="@com.xie.struts.ognl.StaticClass@staticString()"/><br/>
 
  访问静态的属性:<br/>
  <!-- @类的全路径名@静态属性 -->
  静态属性:<s:property value="@com.xie.struts.ognl.StaticClass@ptr"/><br/>
  访问Math类的静态方法:<br>
  Math类的静态方法:<s:property value="@@max(10,15)"/><br>
  <hr>
  访问普通类的构造方法:<br>
  访问user类的构造方法1:<s:property value="new com.xie.struts.ognl.modal.User(/"liu/",/"liu/")"/><br>
  访问user类的构造方法2:<s:property value="new com.xie.struts.ognl.modal.User('liu','liu')"/><br>
  <hr>
 访问集合:<br>
 1.访问list:<s:property value="users"/><br>
 <!--
 <s:property value="users[1].passwd"/>:取出users集合中索引为1的Object的passwd属性值
 <s:property value="users.{passwd}[1]"/>:取出users集合中的所有passwd构成一个数组,然后取出索引为1的值。
 -->
 2.访问list集合中的某个元素:<s:property value="users[1].passwd"/>|||||<s:property value="users.{passwd}[1]"/><br>
 3.访问list集合中某个属性的集合:<s:property value="users.{username}"/><br>
 4.访问set集合:<s:property value="dogs"/><br>
 5.访问set集合中的某个元素:<s:property value="dogs[1]"/><br>
 6.访问Map集合:<s:property value="dogMap"/><br>
 7.访问Map集合中的某个元素:<s:property value="dogMap.dog2"/>|||||<s:property value="dogMap['dog2']"/><br>
 8.访问map集合的所有keys:<s:property value="dogMap.keys"/><br/>
 9.访问map集合的所有values:<s:property value="dogMap.values"/><br>
 10访问集合的size:<s:property value="dogMap.size()"/>|||||<s:property value="dogMap.size"/><br><hr>
 投影(过滤):<br>
 
  <!--过滤条件?#,^#,$#.struts2会循环拿出users集合中的对象,那么this代表每个对象的引用-->
                             
 1.投影:<s:property value="users.(?#this.username.equals(/"liu/")"/><br>
 2.投影:<s:property value="users.(^#this.username.equals(/"liu/"){passwd}"/><br>
 3.投影:<s:property value="users.($#this.username.equals(/"liu/"){passwd}"/><br>
 4.投影:<s:property value="users.($#this.username.equals(/"liu/"){passwd}==null"/><br><br>
 用[]访问值栈的元素:<br>
 []访问ognl栈的ation的位置:<s:property value="[0]"/><br>
 <hr>   
     查看值栈的属性:<s:debug></s:debug><br/>

你可能感兴趣的:(Math,struts,object,Graph,domain,action)