大魚

          JSF表達式語言

          JSF的表達式語言(EL)的形式跟jSP的表達式語言的形式類似:#{...}。EL的主要用途是使你可以引用和更新bean的屬性,或者執行簡單的語句,而不用寫完整的Java代碼。
          l JSF EL基于JSP 2.0中的表達式語言,它的用法幾乎跟JSP2.0中的表達式語言一樣,但二者仍有一些關鍵不同:
          l JSF使用(#)來標記表達式的開始,而JSP使用($);
          l JSF表達式是雙向的。即它可以引用屬性的值也可以更新之;
          l JSF EL也允許引用對象方法;
          l 某些JSP特定的特征無效,比如頁面上下文范圍(page);
          l JSF EL表達式可以通過常規Java代碼求解(結果是可以不需要JSP);
          l JSF EL不官方支持函數。
          JSF EL也支持“.”和“[]”取值。它支持全范圍的算術運算、邏輯運算與關系運算:
          1.      算術運算有:
          加法 (+), 減法 (-), 乘法 (*), 除法 (/ or div) 與余除 (% or mod) 。下面是算術運算的一些例子:
          表達式
          結果
          #{1}
          1
          #{1 + 2}
          3
          #{1.2 + 2.3}
          3.5
          #{1.2E4 + 1.4}
          12001.4
          #{-4 - 2}
          -6
          #{21 * 2}
          42
          #{3 / 4}
          0.75
          #{3 div 4}
          0.75,除法
          #{3 / 0}
          Infinity
          #{10 % 4}
          2
          #{10 mod 4}
          2,也是求模
          #{(1 == 2) ? 3 : 4}
          4
          如同在Java語法一樣 ( expression ? result1 : result2)是個三元運算,expression為true顯示result1,false顯示result2。
          2. 邏輯運算:
          and(或&&)、or(或!!)、not(或!)。一些例子為:
          表達式
          結果
          #{true and false}
          false
          #{true or false}
          true
          #{not true}
          false
          3. 關系運算:
          小于Less-than(<、lt)、大于Greater-than (>、gt)、小于或等于Less-than-or-equal(<=、le)、大于或等于Greater-than-or-equal(>=、ge)、等于Equal(==、eq)、不等于Not Equal(!=、ne),由英文名稱可以得到lt、gt等運算子之縮寫詞,以下是一些例子:
          表達式
          結果
          #{1 < 2}
          true
          #{1 lt 2}
          true
          #{1 > (4 / 2)}
          false
          #{1 > (4 / 2)}
          false
          #{4.0 >= 3}
          true
          #{4.0 ge 3}
          true
          #{4 <= 3}
          false
          #{4 le 3}
          false
          #{100.0 == 100}
          true
          #{100.0 eq 100}
          true
          #{(10 * 10) != 100}
          false
          #{(10 * 10) ne 100}
          false
          關系運算也可以用來比較字符或字符串,按字典順序來決定比較結果,例如:
          表達式
          結果
          #{'a' < 'b'}
          true
          #{'hip' > 'hit'}
          false
          #{'4' > 3}
          true
          4. Empty:
          用來測試空值(null、空字符串、數組、Map或者沒有值的Collection),如:
          表達式
          結果
          #{empty ''}
          true
          #{empty 'abcd'}
          false
          JSF EL能搜索Java Web應用的三個范圍:application、session、request中以匹配特定關鍵字的對象。因為JSF一定要鎖定到JSP,所以它不支持page范圍。JSF EL支持的隱含變量有:cookie、header、headerValues、initParam、param、paramValues、applicationScope、sessionScope、requestScope、還有facesContext(當前請求的FacesContext實例)和view(當前視圖)。

          posted on 2009-03-17 11:54 大魚 閱讀(443) 評論(0)  編輯  收藏 所屬分類: JSF

          主站蜘蛛池模板: 精河县| 商丘市| 吕梁市| 长阳| 银川市| 芮城县| 华宁县| 固始县| 包头市| 聂拉木县| 周宁县| 武清区| 祁门县| 澄迈县| 镇原县| 桃园县| 醴陵市| 拉孜县| 嘉峪关市| 新源县| 融水| 桃园县| 革吉县| 肇州县| 巴彦淖尔市| 昭通市| 武威市| 德昌县| 河源市| 绍兴市| 南宫市| 湄潭县| 杭锦旗| 谢通门县| 吉安市| 阿坝县| 巨鹿县| 启东市| 三原县| 巴林右旗| 平舆县|