国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

el表達式和ognl表達式的區別

2019-11-08 02:00:15
字體:
來源:轉載
供稿:網友

1.區別

用法區別:OGNL是通常要結合Struts 2的標志一起使用,如<s:PRoperty value=”#xx” /> struts頁面中不能單獨使用,el可以單獨使用 ${sessionScope.username} 

 

頁面取值區別:

 名稱

servlet

ognl                                                                           el

parameters

request.getParameter(“username“)

#username                                             ${username}

request

request.getAttribute(“userName”)

#request.userName                                ${requestScope.username}

session

session.getAttribute(“userName”)

#session.userName                               ${sessionScope.username}

application

application.getAttribute(“userName”)

#application.userName                          ${applicationScope.username}

attr

用于按request > session > application順序訪問其屬性(attribute)

#attr.userName相當于按順序在以上三個范圍(scope)內讀取userName屬性,直到找到為

 

2.ognl講解

OGNLStruts 2默認的表達式語言。是Object Graphic Navigation Language(對象圖導航語言)的縮寫,它是一個開源項目。

 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

[html] view plaincopyprint?<s:set name=”foobar” value=”#{’foo1′:’bar1′, ‘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>   [html] view plain copy print?<s:set name=”foobar” value=”#{’foo1′:’bar1′, ‘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>   
<s:set name=”foobar” value=”#{’foo1′:’bar1′, ‘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表達式,例如下面的代碼片斷所示:

[html] view plaincopyprint?<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>  [html] view plain copy print?<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>  
<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>

待續


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阳东县| 河北省| 镇安县| 财经| 观塘区| 黄平县| 项城市| 山西省| 泗水县| 绵阳市| 河东区| 灌云县| 淮安市| 普洱| 乌拉特中旗| 广丰县| 区。| 双流县| 白银市| 浪卡子县| 黎平县| 奎屯市| 嵊泗县| 凤阳县| 越西县| 海林市| 桂林市| 白朗县| 玛沁县| 阳原县| 正镶白旗| 吉林市| 大同市| 龙山县| 肇东市| 图木舒克市| 邢台县| 瑞昌市| 聂荣县| 崇明县| 德庆县|