posts - 66, comments - 12, trackbacks - 0, articles - 0

          struts2 ognl用法

          Posted on 2009-09-24 10:24 cyantide 閱讀(437) 評論(0)  編輯  收藏 所屬分類: struts2
          #、%和$符號在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':'bar','foo2':'bar2'}" />

          <p>The value of key "foo1" is <s:property value="#foobar['foo1']" /></p>

          <p>不使用%:<s:url value="#foobar['foo1']" /></p>

          <p>使用%:<s:url value="%{#foobar['foo1']}" /></p>

          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>
          主站蜘蛛池模板: 城口县| 晋州市| 仙居县| 河源市| 汶川县| 巴彦淖尔市| 固始县| 盖州市| 阳新县| 富裕县| 和田市| 长兴县| 临沂市| 白水县| 体育| 裕民县| 河西区| 奉新县| 宝鸡市| 皋兰县| 怀来县| 高台县| 曲水县| 锦屏县| 宜丰县| 阜阳市| 财经| 凤庆县| 金门县| 徐水县| 南丹县| 泰来县| 县级市| 西乌珠穆沁旗| 邢台县| 邹城市| 航空| 扎鲁特旗| 湖南省| 潜江市| 揭东县|