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中的一個屬性...