struts2中OGNL的具體用法

1.「#」用於聲明OGNL表達式,有3種用途:java

一.可以訪問OGNL的上下文和ActionContext資源,至關於ActionContext.getContext();session

  1.#parameters,表明request.getParameterValues("id");返回String[]類型,通常使用#parameters.id[i];app

  2.#request,表明request.getAttribute("account");至關於#request.account;this

  3.#session,表明session.getAttribute("account");至關於#session.account;xml

  4.#application,表明application.getAttribute("account");至關於#application.account;資源

  5.#attr,表明request,session,application裏面全部的屬性,#attr.account至關於EL表達式中的${account},依次查看request,session,application,找到爲止.get

 

二.用於過濾或篩選集合,例如:books.{?#this.price<20};it

 

三.構造Map,如#{‘foo1’:‘bar1’,‘foo2’:‘bar2’};io

 

例子:class

maganize是javabean類,裏面有屬性{String name,int price};

Action中有List<maganize> maganizeList = new ArrayList(){····};

<s:property value=「maganizeList.{?#this.price>18}.size()」 />

<s:property value=「maganizeList.{?#this.name.contains(‘XXX’)}.size()」 />

<s:iterator value=「maganizeList.{?#this.price>18}」/>

      <s:property value=「name」/><s:property value=「price」/>

</s:iterator>

 

2.「%」顯示聲明OGNL表達式:用於某些標籤中既可以接受字符,又可以接受OGNL表達式:

例如:<s:label label="#request.account" /> 會直接顯示:#request.account出來

若是是:<s:label label="%{#request.account}" />就會是顯示出account的值

 

3.「$」使用在配置文件中:AAA.xml都行

例如在struts.xml中:

<action name="" >

  <result>·······?id=${id}</result>

</action>

 

額外的增長一點<s:if>的用法:

<s:if test="#parameters.name[0]==‘yao’">···</s:if>

<s:if test="name==‘yao’">···</s:if> 此處的name必須是action中的一個屬性...

相關文章
相關標籤/搜索