." />

欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

JSF Expression Language

系統(tǒng) 2122 0

?

JSF Expression Language 搭配 JSF 標(biāo)簽來使用,是用來存取數(shù)據(jù)對象的一個簡易語言。

  JSF EL是以#開始,將變量或表達(dá)式放置在

Unknown macro: { 與 }
之間,例如:

?

                            #{someBeanName}
                          

  變量名稱可以是faces-config.xml中定義的名稱,如果是Bean的話,可以透過使用 '.' 運(yùn)算子來存取它的屬性,例如:

                            ...
 <f:view>
    <h:outputText value=
                            
                              "#{userBean.name}"
                            
                            
/>
 </f:view>
 ...
                          

  在JSF卷標(biāo)的屬性上," 與 " (或'與')之間如果含有EL,則會加以運(yùn)算,您也可以這么使用它:

                            ...
 <f:view>
    名稱, 年齡:<h:outputText
                  value=
                            
                              "#{userBean.name}, #{userBean.age}"
                            
                            
/>
 </f:view>
 ...
                          

  一個執(zhí)行的結(jié)果可能是這樣顯示的:

                            名稱, 年齡:Justin, 29
                          

  EL的變量名也可以程序執(zhí)行過程中所宣告的名稱,或是JSF EL預(yù)設(shè)的隱含對象,例如下面的程序使用param隱含對象來取得使用者輸入的參數(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è)的隱含對象變量,它代表request所有參數(shù)的集合,實(shí)際是一個java.util.Map型態(tài)對象,JSF所提供的隱含對象,大致上對應(yīng)于 JSP隱含物件 ,不過JSF隱含對象移除了pageScope與pageContext,而增加了facesContext與view,它們分別對應(yīng)于 javax.faces.context.FacesContext與javax.faces.component.UIViewRoot。

  對于Map型態(tài)對象,我們可以使用 '.' 運(yùn)算子指定key值來取出對應(yīng)的value,也可以使用 [ 與 ] 來指定,例如:

                            ...
 <f:view>
    <b> 您好, <h:outputText value=
                            
                              "#{param['name']}"
                            
                            
/> </b>
 </f:view>
 ...
                          

  在 [ 與 ] 之間,也可以放置其它的變量值,例如:

                            ...
 <f:view>
    <h:outputText value=
                            
                              "#{someBean.someMap[user.name]}"
                            
                            
/>
 </f:view>
 ...
                          

  如果變量是List型態(tài)或數(shù)組的話,則可以在 [] 中指定索引,例如:

                            ....
 <f:view>
     <h:outputText value=
                            
                              "#{someBean.someList[0]}"
                            
                            
/>
     <h:outputText value=
                            
                              "#{someBean.someArray[1]}"
                            
                            
/>
     <h:outputText
           value=
                            
                              "#{someBean.someListOrArray[user.age]}"
                            
                            
/>
 </f:view>
 ....
                          

  您也可以指定字面常數(shù),對于true、false、字符串、數(shù)字,JSF EL會嘗試進(jìn)行轉(zhuǎn)換,例如:

                            ....
 <h:outputText value=
                            
                              "#{
                              
                                true
                              
                              
}"
                            
                            
/>
 ....

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

  如果要輸出字符串,必須以單引號 ' 或雙自變量 " 括住,如此才不會被認(rèn)為是變量名稱。

  在宣告變量名稱時,要留意不可與JSF的保留字或關(guān)鍵詞同名,例如不可取以下這些名稱:

                            
                              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)算,其使用就如同在一般常見的程序語言中之運(yùn)算。

  算術(shù)運(yùn)算子有:加法 (+), 減法 (-), 乘法 (*), 除法 (/ or div) 與余除 (% or mod) 。下面是算術(shù)運(yùn)算的一些例子:

表達(dá)式 結(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語法一樣 ( expression ? result1 : result2)是個三元運(yùn)算,expression為true顯示result1,false顯示result2。

  邏輯運(yùn)算有:and(或&&)、or(或!!)、not(或!)。一些例子為:

表達(dá)式 結(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),由英文名稱可以得到lt、gt等運(yùn)算子之縮寫詞,以下是Tomcat的一些例子:

表達(dá)式 結(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)算也可以用來比較字符或字符串,按字典順序來決定比較結(jié)果,例如:

表達(dá)式 結(jié)果
#{'a' < 'b'} true
#{'hip' > 'hit'} false
#{'4' > 3} true

  EL運(yùn)算子的執(zhí)行優(yōu)先級與Java運(yùn)算子對應(yīng),如果有疑慮的話,也可以使用括號()來自行決定先后順序。

JSF Expression Language


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日韩在线免费电影 | 天天综合色天天综合网 | 九一传媒在线观看 | 青青青国产依人精品视频 | 国产亚洲精品久久久极品美女 | 午夜精品在线播放 | 国产中文精品无码欧美综合小说 | www久久爱 | 亚洲午夜精品国产电影在线观看 | 国产精品美女久久久久久久久久久 | 亚洲欧美日韩中文综合在线不卡 | 免费观看日本a毛片 | 国产69久久久欧美黑人A片 | 日本在线视频www鲁啊鲁 | 国产精品久久久久久久久久日本 | 啪啪免费观看 | 色婷婷综合久久久中字幕精品久久 | 91成人在线视频 | 国产欧美日韩综合精品一区二区 | 亚洲精品视频免费观看 | 精品久久一区二区 | 中文字幕视频在线观看 | 99视频在线观看视频一区 | 中文字幕在线二区 | 亚州精品天堂中文字幕 | 午夜精品老牛av一区二区三区 | 99热欧美| 国产精品视频免费一区二区三区 | 夜操| 亚洲另类天天更新影院在线观看 | 久久国产精品99久久小说 | 亚洲精品www | 亚洲欧美一区二区三区久本道 | 亚洲成人精品在线 | 成人网免费视频 | 99热在线播放 | 国内精品美女久久久久 | 日本久久中文字幕 | 精品在线不卡 | 成人欧美一区二区三区在线观看 | 超碰成人免费 |