• <nav id="dstbx"></nav>

    <nav id="dstbx"></nav>
    1. <form id="dstbx"></form>
    2. <small id="dstbx"></small>

      教育行業A股IPO第一股(股票代碼 003032)

      全國咨詢/投訴熱線:400-618-4000

      EL運算符詳細介紹【EL運算符匯總】

      更新時間:2021年11月04日15時49分 來源:傳智教育 瀏覽次數:

      好口碑IT培訓

      EL表達式支持簡單的運算,例如,加(+)、減(一)、乘(*),陳(/)守。為此,在EL中越供了多種運算符,根據運算方式的不同,EL中原算符包括一下幾種。

      1.點運算符(.)

      EL表達式中的點運算符,用于訪問JSP頁面中某些對象的屬性,如JavaBean對象、List對象、Array對象等,其語法格式如下。

      ${customer.name}

      在上述語法格式中,表達式${customer.name}中點運算符的作用就是訪問customer對象中的name屬性。


      2.方括號運算符([)

      EL表達式中的方括號運算符與點運算符的功能相同,都用于訪問JSP頁面中某些對象的屬性,當獲取的屬性名中包含一些特殊符號,如“一”或“?”等并非字母或數字的符號,就只能使用方括號運算符來訪問該屬性,其語法格式如下。

      ${user{"My-Name"}}

      需要注意的是,在訪問對象的屬性時,通常情況都會使用點運算符作為簡單的寫法,但實際上,方括號運算符比點運算符應用更加廣泛。接下來就對比一下這兩種運算符在實際開發中的應用,具體如下。

      (1)點運算符和方括號運算符在某種情況下可以互換,如${student.name}等價于${student["name"]}。

      (2)方括號運算符和點運算符可以相互結合使用,例如,表達式${users[0].userName}可以訪問集合或數組中的第一個元素的userName屬性。

      (3)方括號運算符還可以訪問List集合或數組中指定索引的某個元素,如表達式${users[0]}用于訪問集合或數組中第一個元素。在這種情況下,只能使用方括號運算符,而不能使用點運算符。


      3.算術運算符

      EL表達式中的算術運算符用于對整數和浮點數的值進行算術運算。使用這些算術運算符可以非常方便地在JSP頁面進行算術運算,并且可以簡化頁面的代碼量。接下來通過下表來列舉EL表達式中所有的算術運算符。

      算數運算符
      算數運算符 說明 算數表達式 結果
      + ${10+2} 12
      - ${10-2} 8
      * ${10*2} 20
      /(或div) ${10/4}或${10div2} 2.5
      %(或mod) 取模(取余) ${10%4}或${10mod2} 2


      上表中,列舉了EL表達式中所有的算術運算符,這些運算符相對來說比較簡單。在使用這些運算符時需要注意兩個問題,“一”運算符既可以作為減號,也可以作為負號,“/”或“div”運算符在進行除法運算時,商為小數。


      4.比較運算符

      EL表達式中的比較運算符用于比較兩個操作數的大小,操作數可以是各種常量、EL變量或EL表達式,所有的運算符執行的結果都是布爾類型。接下來通過表來列舉EL表達式中所有的比較運算術符。

      比較運算符
      比較運算符 說明 算數表達式 結果
      ==(或eq) 等于 ${10==2}或${10 eq 2} false
      !=(或ne) 不等于 ${10!=2}或${10 ne 2} true
      <(或lt) 小于 ${10<2}或${10 lt 2} false
      >(或gt) 大于 ${10>2}或${10 gt 2} true
      <=(或le) 小于等于 ${10<=2}或${10 le 2} false
      >= (或ge) 大于等于 ${10 >=2}或${10 ge 2} true

      上表中,列舉了EL表達式中所有的比較運算符,在使用這些運算符時需要注意兩個問題,具體如下:

      (1)比較運算符中的“==”是兩個等號,千萬不可只寫一個等號。

      (2)為了避免與JSP頁面的標簽產生沖突,對于后4種比較運算符,EL表達式中通常使用括號內的表示方式,例如,使用“1t”代替“≤”運算符,如果運算符后面是數字,在運算符和數字之間至少要有一個空格,例如${1lt 2},但后面如果有其他符號時則可以不加空格,例如${1lt(1+1)}。


      5.邏輯運算符

      EL表達式中的邏輯運算符用于對結果為布爾類型的表達式進行運算,運算的結果仍為布爾類型。接下來通過下表列舉EL表達式中所有的邏輯運算符。

      邏輯運算符
      邏輯運算符 說明 算數表達式 結果
      &&(and) 邏輯與 ${true&&false}或者{ture and false} false
      ||(or) 邏輯或 ${fasle||true}或者{false or true} true
      !(not) 邏輯非 ${!true}或${not ture} false

      上表中,列出了EL表達式中的3種邏輯運算符,需要注意的是,在使用&.&運算符時,如果有―個表達式結果為false,則結果必為false,在使用||運算符時,如果有一個表達式的結果為true,則結果必為true。

      6.empty運算符

      EL表達式中的emptv運算符用干判斷某個對象是否為null或"",結果為布爾類型,其基本的語法格式如下所示。

      ${empty var}

      需要注意的是,empty運算符可以判定變量(或表達式)是否為null或""。例如,下列情況empty運算符的返回值為true。

      (1) var變量不存在,即沒有定義,例如表達式${empty name},如果不存在name變量,就返回true。

      (2) var變量的值為null,例如表達式${empty customer.name},如果customer.name的值為null,就返回true。

      (3) var變量引用集合(Set、 Map和 List)類型對象,并且在集合對象中不包含任何元素。


      7.條件運算符

      EL表達式中條件運算符用于執行某種條件判斷,它類似于Java語言中的if一else語句,其語法格式如下。

      ${A? B:C}

      在上述語法格式中,表達式A的計算結果為布爾類型,如果表達式A的計算結果為true,就執行表達式B并返回B的值;如果表達式A的計算結果為false,就執行表達式C并返回C的值,例如表達式${(1==2)?3:4}的結果就為4。


      8.“()”運算符

      EL表達式中的圓括號用于改變其他運算符的優先級,例如表示${a*b+C},正常情況下會計算a*b的積,然后再將計算的結果與C相加,如果在這個表達式中加一個圓括號運算符,將表達式修改為${a*(b+c)},這樣則先計算b與C的和,再將計算的記過與a相乘。

      需要注意的是,EL表達式中的運算符都有不同的運算優先級,當EL表達式中包含多種運算符時,它們必須按照各自優先級的大小來進行運算。接下來,通過下面表格來描述這些運算的優先級。

      運算符的優先級
      優先級 運算符 優先級 運算符
      1 []. 6 <> <= >= lt gt le ge
      2 () 7 == != eq ne 
      3 -(-) not ! empty 8 && and
      4 * / div % mod 9 || or 
      5 +(+)-(-) 10 ?:

      上面列表,列舉了不同運算符各自的優先級大小。對于初學者來說,這些運算符的優先級不必刻意地去記憶。為了防止產生歧義,建議讀者盡量使用“()”運算符來實現想要的運算順序。注意:在應用EL表達式取值時,沒有數組的下標越界,沒有空指針異常,沒有字符串的拼接。



      猜你喜歡

      EL標識符的規范和保留字

      JVM組成部分和作用詳細介紹

      MyBatis的執行原理詳細介紹

      Java中怎樣定義和聲明接口?

      傳智教育Java培訓課程

      0 分享到:
      神马影院我不卡