<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    jwebee

    jwebee

    BlogJava 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
      11 Posts :: 0 Stories :: 0 Comments :: 0 Trackbacks
    JSF Expression Language 搭配 JSF 標(biāo)籤來(lái)使用,是用來(lái)存取資料物件的一個(gè)簡(jiǎn)易語(yǔ)言。

     

    JSF EL是以#開(kāi)始,將變數(shù)或運(yùn)算式放置在 { 與 } 之間,例如:
     
    #{someBeanName}

     

    變數(shù)名稱(chēng)可以是faces-config.xml中定義的名稱(chēng),如果是Bean的話(huà),可以透過(guò)使用 '.' 運(yùn)算子來(lái)存取它的屬性,例如:
     
    ...
    <f:view>
    <h:outputText value="#{userBean.name}"/>
    </f:view>
    ...

     

    在JSF標(biāo)籤的屬性上," 與 " (或'與')之間如果含有EL,則會(huì)加以運(yùn)算,您也可以這麼使用它:
     
    ...
    <f:view>
    名稱(chēng), 年齡:<h:outputText
    value="#{userBean.name}, #{userBean.age}"/>
    </f:view>
    ...

     

    一個(gè)執(zhí)行的結(jié)果可能是這樣顯示的:
     
    名稱(chēng), 年齡:Justin, 29

     

    EL的變數(shù)名也可以程式執(zhí)行過(guò)程中所宣告的名稱(chēng),或是JSF EL預(yù)設(shè)的隱含物件,例如下面的程式使用param隱含物件來(lái)取得使用者輸入的參數(shù):
     
    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
    <%@page contentType="text/html; charset=Big5"%>

    <html>
    <head>
    <title></title>
    </head>
    <body>
    <f:view>
    <b> 您好, <h:outputText value="#{param.name}"/> </b>
    </f:view>

    </body>
    </html>

     

    param是JSF EL預(yù)設(shè)的隱含物件變數(shù),它代表request所有參數(shù)的集合,實(shí)際是一個(gè)java.util.Map型態(tài)物件,JSF所提供的隱含物件,大致上對(duì)應(yīng)於 JSP 隱含物件,不過(guò)JSF隱含物件移除了pageScope與pageContext,而增加了facesContext與view,它們分別對(duì)應(yīng)於 javax.faces.context.FacesContext與javax.faces.component.UIViewRoot。

     

    對(duì)於Map型態(tài)物件,我們可以使用 '.' 運(yùn)算子指定key值來(lái)取出對(duì)應(yīng)的value,也可以使用 [ 與 ] 來(lái)指定,例如:
     
    ...
    <f:view>
    <b> 您好, <h:outputText value="#{param['name']}"/> </b>
    </f:view>
    ...

     

    在 [ 與 ] 之間,也可以放置其它的變數(shù)值,例如:
     
    ...
    <f:view>
    <h:outputText value="#{someBean.someMap[user.name]}"/>
    </f:view>
    ...

     

    如果變數(shù)是List型態(tài)或陣列的話(huà),則可以在 [] 中指定索引,例如:
     
    ....
    <f:view>
    <h:outputText value="#{someBean.someList[0]}"/>
    <h:outputText value="#{someBean.someArray[1]}"/>
    <h:outputText
    value="#{someBean.someListOrArray[user.age]}"/>
    </f:view>
    ....

     

    您也可以指定字面常數(shù),對(duì)於true、false、字串、數(shù)字,JSF EL會(huì)嘗試進(jìn)行轉(zhuǎn)換,例如:
     
    ....
    <h:outputText value="#{true}"/>
    ....

    <h:outputText value="#{'This is a test'}"/>
    ....

     

    如果要輸出字串,必須以單引號(hào) ' 或雙引數(shù) " 括住,如此才不會(huì)被認(rèn)為是變數(shù)名稱(chēng)。

     

    在宣告變數(shù)名稱(chēng)時(shí),要留意不可與JSF的保留字或關(guān)鍵字同名,例如不可取以下這些名稱(chēng):
     
    true false null div mod and or not eq ne lt gt le ge instanceof empty

     

    使用EL,您可以直接實(shí)行一些算術(shù)運(yùn)算、邏輯運(yùn)算與關(guān)係運(yùn)算,其使用就如同在一般常見(jiàn)的程式語(yǔ)言中之運(yùn)算。

     

    算術(shù)運(yùn)算子有:加法 (+), 減法 (-), 乘法 (*), 除法 (/ or div) 與餘除 (% or mod) 。下面是算術(shù)運(yùn)算的一些例子:
    運(yùn)算式 結(jié)果
    #{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語(yǔ)法一樣 ( expression ? result1 : result2)是個(gè)三元運(yùn)算,expression為true顯示result1,false顯示result2。

     

    邏輯運(yùn)算有:and(或&&)、or(或!!)、not(或!)。一些例子為:
    運(yùn)算式 結(jié)果
    #{true and false} false
    #{true or false} true
    #{not true} false

     

    關(guān)係運(yùn)算有:小於Less-than (< or lt)、大於Greater-than (> or gt)、小於或等於Less-than-or-equal (<= or le)、大於或等於Greater-than-or-equal (>= or ge)、等於Equal (== or eq)、不等於Not Equal (!= or ne),由英文名稱(chēng)可以得到lt、gt等運(yùn)算子之縮寫(xiě)詞,以下是Tomcat的一些例子:
    運(yùn)算式 結(jié)果
    #{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

     

    左邊是運(yùn)算子的使用方式,右邊的是運(yùn)算結(jié)果,關(guān)係運(yùn)算也可以用來(lái)比較字元或字串,按字典順序來(lái)決定比較結(jié)果,例如:
    運(yùn)算式 結(jié)果
    #{'a' < 'b'} true
    #{'hip' > 'hit'} false
    #{'4' > 3} true

     

    EL運(yùn)算子的執(zhí)行優(yōu)先順序與Java運(yùn)算子對(duì)應(yīng),如果有疑慮的話(huà),也可以使用括號(hào)()來(lái)自行決定先後順序。

     




    周行 2008-05-22 12:38 發(fā)表評(píng)論

    文章來(lái)源:http://www.tkk7.com/zhouxing/archive/2008/05/22/JSFExpressionLanguage.html
    posted on 2008-05-22 12:38 jwebee 閱讀(171) 評(píng)論(0)  編輯  收藏

    只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 在线免费观看色片| 亚洲高清日韩精品第一区| 中国好声音第二季免费播放| 亚洲欧洲日韩国产综合在线二区| 亚洲精品在线免费观看| 日韩国产精品亚洲а∨天堂免| 亚洲精品夜夜夜妓女网| 久久99九九国产免费看小说| 日韩电影免费在线观看网址| 亚洲国产成人久久精品动漫| 精品久久免费视频| 日本免费久久久久久久网站| 亚洲日韩精品无码专区| 国产成人亚洲综合无码精品| 成人午夜视频免费| 国产午夜精品免费一区二区三区| 亚洲免费二区三区| 亚洲另类激情综合偷自拍图| 性一交一乱一视频免费看| 中文字幕乱理片免费完整的| 亚洲人成网亚洲欧洲无码| 亚洲国产精品高清久久久| 精品久久久久久久免费加勒比| 免费福利电影在线观看| 立即播放免费毛片一级| 亚洲日产2021三区| 在线精品亚洲一区二区三区| 在线观看AV片永久免费| 无码国产精品一区二区免费3p| 国产午夜亚洲精品不卡电影| 亚洲人成黄网在线观看| 亚洲国产AV无码专区亚洲AV | 性xxxx视频免费播放直播 | 国产精品永久免费| 亚洲人成网站在线播放2019| 337p欧洲亚洲大胆艺术| 亚洲欧洲精品无码AV| 免费看国产精品麻豆| 成年性生交大片免费看| 在线日本高清免费不卡| 中文字幕无码日韩专区免费|