关于OGNL表达式中的%,$,#
? 1.#符號的用途一般有三種。
?? 1)訪問非根對象屬性,例如示例中的#session.msg表達式,由于Struts 2中值棧被視為根對象,所以訪問其他非根對象時,需要加#前綴。實際上,#相當于ActionContext. getContext();#session.msg表達式相當于ActionContext.getContext().getSession(). getAttribute(”msg”)?。
??? 2)用于過濾和投影(projecting)集合,如示例中的persons.{?#this.age>20}。
??? 3)用來構造Map,例如示例中的#{’foo1′:’bar1′,?’foo2′:’bar2′}。
2.%符號%符號的用途是在標志的屬性為字符串類型時,計算OGNL表達式的值。如下面的代碼所示:
構造Map
<s:set name=”foobar” value=”#{’foo1′:’bar1′, ‘foo2′:’bar2′}” />
?
The value of key “foo1″ is <s:property value=”#foobar['foo1']” />
?
?
不使用%:<s:url value=”#foobar['foo1']” />
?
?
使用%:<s:url value=”%{#foobar['foo1']}” />
?
?
3.$符號$符號主要有兩個方面的用途。
?? 在國際化資源文件中,引用OGNL表達式,例如國際化資源文件中的代碼:reg.agerange=國際化資源信息:年齡必須在${min}同${max}之間。
??? 在Struts 2框架的配置文件中引用OGNL表達式,例如下面的代碼片斷所示:
<validators>
??? <field name=”intb”>
??????????? <field-validator type=”int”>
??????????? <param name=”min”>10</param>
??????????? <param name=”max”>100</param>
??????????? <message>BAction-test校驗:數字必須為${min}為${max}之間!</message>
??????? </field-validator>
??? </field>
</validators>
轉載于:https://www.cnblogs.com/wshwenwen/archive/2010/05/14/1735522.html
總結
以上是生活随笔為你收集整理的关于OGNL表达式中的%,$,#的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: “响馀群动息”下一句是什么
- 下一篇: jquery下拉菜单