Struts2 JSP页面的一些操作(集合)

1、针对model的对象,如果需要struts来完成实例化,那么该model对象需要提供默认构造方法,并且,需要实例化的对象,必须提供至少一个属性参数。否则无法实例化


2、访问action中的方法和访问属性差不多,直接在<s:property value="方法名()"/>


3、
  访问静态方法,<s:property value="@包名.类名@静态方法()"/>
  注意:需要在 struts.xml 中添加 <constant name="struts.ognl.allowStaticMethodAccess" value="true"/> 。
  访问静态属性,<s:property value="@包名.类名@静态属性"/>
  访问Math类方法,<s:property value="@@方法()"/> 此方法只是针对Math类的访问


4、访问action中的构造方法,<s:property value="new 包名.类名.构造方法()"/>


5、访问集合:
  A、访问List,<s:property value="集合名"/>
  B、访问List中某个元素,<s:property value="集合名[n]"/>
  C、访问List中元素某个属性的集合(即,将该集合中的某个属性抽出来重新组合成一个集合),<s:property value="集合名.{属性}"/>
  D、访问List中元素某个属性集合中的特定值, <s:property value="集合名[n].{属性}"/>(推荐)
                      <s:property value="集合名.{属性}[n]"/>(不推荐)
  E、访问Set,与 A 类似。
  F、访问Set中某个元素,由于Set中的元素没有顺序,所以,无法通过索引取值。
  G、访问Map,与 A 类似。
  H、访问Map中某个元素,<s:property value="集合名.key名"/> (推荐用法)
              <s:property value="集合名['key名']"/> (单引号在ognl里表示,并非在java中的表示意思)
              <s:property value="集合名[\"key名\"]"/> (斜杠表示转义)
  I、访问Map中所有的key,<s:property value="集合名.keys"/>。
  J、访问Map中所有的value,<s:property value="集合名.values"/>。
  K、访问容器的大小,<s:property value="集合名.size()"/>。


6、投影(过滤)
  A、<s:property value="集合名.{?#this.属性 == 值}"/> 注:this 相当于集合迭代操作时的当前一个元素对象,该表达式的结果是一个集合
  B、<s:property value="集合名.{^#this.属性 == 值}"/> 注:^ 表示符合该逻辑的ognl的集合中,取第一个元素
  C、<s:property value="集合名.{$#this.属性 == 值}"/> 注:$ 表示符合该逻辑的ognl的集合中,取最后一个元素
  D、<s:property value="[0]"/> 注:[] 直接用中括弧表示应用value stack中的对象,若为0,表示包含从栈顶到栈底所有对象。在存在服务器端action跳转时,也就是result的type为chain时,value stack中会出现多个action对象。

posted @ 2012-08-07 10:00  书山瞌睡虫  阅读(404)  评论(0编辑  收藏  举报