小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Apusic OperaMasks學(xué)習(xí) 14.2. 兩種導(dǎo)航方式

 孤獨(dú)求學(xué)者 2011-03-03
 14.2. 兩種導(dǎo)航方式
 
14.2.1. 靜態(tài)導(dǎo)航

在簡單web應(yīng)用程序中,網(wǎng)頁導(dǎo)航是靜態(tài)的。也就是說,一個(gè)導(dǎo)航動作總是跳轉(zhuǎn)到固定的目的頁面。要實(shí)現(xiàn)靜態(tài)導(dǎo)航,在編寫頁面時(shí)只需要在動作構(gòu)件(例如命令按鈕)的action屬性中指定導(dǎo)航的來源標(biāo)識字符串,<h:commandButton label="login" action="login"/>。并且,如上文所述,我們需要在導(dǎo)航規(guī)則里配置一個(gè)outcome,告訴JSF引擎導(dǎo)航的目的地。導(dǎo)航規(guī)則在配置文件WEB-INF/faces-config.xml中的配置為:

<navigation-rule> 
     <from-view-id>/login.xhtml</from-view-id> 來源網(wǎng)址
     <navigation-case> 
          <from-outcome>login</from-outcome> 來源構(gòu)件
          <to-view-id>/welcome.xhtml</to-view-id>目的網(wǎng)址
     </navigation-case>
</navigation-rule> 

那么,用戶進(jìn)入login.xhtml后,點(diǎn)擊命令按鈕,導(dǎo)航管理器將根據(jù)導(dǎo)航規(guī)則,執(zhí)行頁面跳轉(zhuǎn)到welcome.xhtml中去。

如果有好多頁面點(diǎn)擊命令按鈕后要跳轉(zhuǎn)到同一頁面,可以仔細(xì)挑選動作字符串,將多個(gè)導(dǎo)航規(guī)則組合在一起。例如,可以配置整個(gè)應(yīng)用程序頁面中action輸出為logout的按鈕,點(diǎn)擊后,跳轉(zhuǎn)到logout.xhtml頁面。

<navigation-rule> 
      <navigation-case> 
         <from-outcome>logout</from-outcome> 
         <to-view-id>/logout.xhtml</to-view-id> 
      </navigation-case> 
</navigation-rule> 

沒有指定from-view-id元素,上面的導(dǎo)航規(guī)則適合于所有頁面

1.1.2    14.2.2. 動態(tài)導(dǎo)航

靜態(tài)導(dǎo)航中,action對應(yīng)的是固定字符串。但在多數(shù)web應(yīng)用程序中,導(dǎo)航不是靜態(tài)的,而是需要根據(jù)一定邏輯動態(tài)決定采用哪種導(dǎo)航規(guī)則。為此,OperaMasks中提供了動態(tài)導(dǎo)航特性。動態(tài)導(dǎo)航與靜態(tài)導(dǎo)航最大的區(qū)別action是通過EL表達(dá)式指定的方法。頁面的跳轉(zhuǎn)所采用的導(dǎo)航規(guī)則依賴于用戶對action方法的具體實(shí)現(xiàn)。

動態(tài)導(dǎo)航的action對應(yīng)的是一個(gè)方法引用(method reference)。例如:

< h:commandButton label="test_dynamic" action="#{backBean.login}" />

要實(shí)現(xiàn)動態(tài)導(dǎo)航,action屬性中的方法要有返回值。導(dǎo)航控制器根據(jù)返回值的結(jié)果進(jìn)行導(dǎo)航規(guī)則的匹配,進(jìn)而實(shí)現(xiàn)頁面的跳轉(zhuǎn)。方法的返回值可以是任何類型,使用枚舉類型是一個(gè)有用的選擇,因?yàn)榫幾g器能夠在動作名稱中捕獲方法的返回值的類型。例如:在常見的用戶登錄界面中要核對用戶是否合法,根據(jù)核對的結(jié)果跳轉(zhuǎn)到不同的頁面,就要用動態(tài)導(dǎo)航來處理。其中action的方法引用的寫法可以如下:

public String login(){
   if(username.equals(name)){ 
       return "sucess"; 
    }
  else{ 
    return "failure";
    }
}

導(dǎo)航規(guī)則配置文件faces-config.xml的寫法和上面的靜態(tài)導(dǎo)航配置一樣(這里的配置可以被靜態(tài)導(dǎo)航和動態(tài)導(dǎo)航同時(shí)使用)。

動態(tài)導(dǎo)航的處理過程是:
 
·     執(zhí)行EL表達(dá)式引用的方法
 
·     方法的結(jié)果被傳遞到導(dǎo)航處理程序中

導(dǎo)航處理程序跳轉(zhuǎn)到下一個(gè)頁面

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多