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

          struts2 ognl用法

          Posted on 2009-09-24 10:24 cyantide 閱讀(433) 評(píng)論(0)  編輯  收藏 所屬分類: struts2
          #、%和$符號(hào)在OGNL表達(dá)式中經(jīng)常出現(xiàn),而這三種符號(hào)也是開(kāi)發(fā)者不容易掌握和理解的部分。在這里筆者簡(jiǎn)單介紹它們的相應(yīng)用途。

          1.#符號(hào)的用途一般有三種。
             1)訪問(wèn)非根對(duì)象屬性,例如示例中的#session.msg表達(dá)式,由于Struts 2中值棧被視為根對(duì)象,所以訪問(wèn)其他非根對(duì)象時(shí),需要加#前綴。實(shí)際上,#相當(dāng)于ActionContext. getContext();#session.msg表達(dá)式相當(dāng)于ActionContext.getContext().getSession(). getAttribute(”msg”) 。
              2)用于過(guò)濾和投影(projecting)集合,如示例中的persons.{?#this.age>20}。
              3)用來(lái)構(gòu)造Map,例如示例中的#{'foo1':'bar1','foo2':'bar2'}。

          2.%符號(hào)
          %符號(hào)的用途是在標(biāo)志的屬性為字符串類型時(shí),計(jì)算OGNL表達(dá)式的值。如下面的代碼所示:
          構(gòu)造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.$符號(hào)
          $符號(hào)主要有兩個(gè)方面的用途。

             在國(guó)際化資源文件中,引用OGNL表達(dá)式,例如國(guó)際化資源文件中的代碼:reg.agerange=國(guó)際化資源信息:年齡必須在${min}同${max}之間。

              在Struts 2框架的配置文件中引用OGNL表達(dá)式,例如下面的代碼片斷所示:
          <validators>
              <field name=”intb”>
                      <field-validator type=”int”>
                      <param name=”min”>10</param>
                      <param name=”max”>100</param>
                      <message>BAction-test校驗(yàn):數(shù)字必須為${min}為${max}之間!</message>
                  </field-validator>
              </field>
          </validators>
          主站蜘蛛池模板: 麻栗坡县| 襄城县| 布尔津县| 临夏市| 分宜县| 甘谷县| 临江市| 泗阳县| 兰溪市| 明水县| 射阳县| 上杭县| 白山市| 红原县| 茌平县| 宁安市| 泰兴市| 万源市| 武义县| 岑巩县| 太仆寺旗| 正阳县| 湟中县| 寿光市| 易门县| 北辰区| 明溪县| 冕宁县| 巴青县| 西宁市| 玛多县| 维西| 叶城县| 玛沁县| 永登县| 洛扎县| 宜宾县| 阳西县| 麻城市| 永济市| 周至县|