程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> J2EE >> 在Java EE 6中使用JSF 2.0簡化頁面制作(2)

在Java EE 6中使用JSF 2.0簡化頁面制作(2)

編輯:J2EE

JSF 2.0對AJax的支持

JSF 2.0天生就支持Ajax,利用Ajax技術,Web應用程序在後台以異步的方式從服務器獲取數據。支持AJax後,允許頁面局部刷新,允許選擇視圖中的一個組件進行處理而不影響其它組件。

要在JSF中使用Ajax,需要訪問有資源標識符的JavaScript資源jsf.js,它存在於javax.faces資源庫中,包含讓JSF與Ajax交互的JavaScript API,JavaScript API由一組標准的Javascript函數組成,使JavaServer Faces框架中的Ajax操作變得簡單了,你幾乎不用直接包括這個文件,當你使用任何開啟Ajax的標簽或組件時,JSF會自動包括它。然後你就可以使用<f:AJax>標簽或調用JavaScript API中的函數了。

下面是一個使用<f:AJax>標簽的示例:

  1. <h:commandButton id="button1">
  2. <f:AJax execute="..." render="..."/>
  3. </h:commandButton>

這裡的<f:ajax>標簽是嵌套在<h:commandButton>標簽內的,這樣會結合在execute屬性中指定的AJax行為和<h:commandButton>標簽呈現的命令按鈕,你也可以指定一個event屬性來識別JavaScript DOM事件,如果你不指定event屬性,JSF使用組件的默認行為,這裡的默認行為是onclick,因此JSF結合execute屬性中指定的Ajax請求和呈現按鈕的onclick事件。用戶點擊該按鈕時,JSF提交AJax請求給服務器。

使用<f:AJax>標簽的一個好處是不用在頁面中指定載入jsf.JS,它會自動為你載入,相比之下,如果你調用JavaScript API,首先需要使用<h:outputScript>讓jsf.JS對當前視圖可用,例如:

  1. <f:vIEw contentType="text/Html"/>
  2. <h:head>
  3. <meta...
  4. <title...
  5. </h:head>
  6. <h:body>
  7. ...
  8. <h:outputScript name="jsf.JS" library="Javax.faces" target="body"/>
  9. ...
  10. </h:body>
  11. ...

然後才可以使用Javascript API中的函數產生AJax請求。例如,你使用JavaScript函數JSf.AJax.request向服務器發送一個請求,如下面的代碼:

  1. <h:commandButton id="button1" value="submit">
  2. onclick="JSf.AJax.request(this,event);" />

代碼包括一個<h:commandButton>標簽,它呈現為一個按鈕,用戶點擊這個按鈕時,向服務器提交一個AJax請求。

Servlet 3.0和JSF2.0中的更多新特性

Servlet 3.0中另一個新特性是允許你使用ServletContext類中的方法通過編程在Web應用程序啟動時向其添加Servlet和Servlet過濾器,使用addServlet()方法添加Servlet,使用addFilter()添加Servlet過濾器。結合可插拔式共享框架特性,Web框架可以在無開發人員介入的情況下實現自我配置。

  • Java EE 6總覽:平台的主要目標
  • Java EE 6引入的三大新技術之JAX-RS
  • Java EE 6數據驗證新框架:Bean驗證
  • Java EE 6增強的可擴展性:Web分片和可插
  • Java EE 6新特性之Servlet 3.0的異步處理
此外Servlet 3.0加入了許多安全特性,除了聲明安全外,Server 3.0通過HttpServletRequest接口提供了編程安全,例如,你可以在應用程序中使用HttpServletRequest的authenticate()方法執行用戶名和密碼的收集,或者使用login()方法指向容器驗證一個非強制請求上下文中的請求調用者。有關Servlet 3.0的更多特性,請參閱JSR 315規范。

JSF 2.0中的一些額外增強與資源如何打包和處理有關,JSF 2.0標准化了打包哪裡的資源。所有資源都放在resources目錄或一個子目錄下,資源需要按順序正確地進行渲染,例如CSS文件和JavaScript文件,圖3顯示了Netbeans中的一個JSF項目部分結構及文件,注意其中的resources目錄,CSS和images目錄。

JSF應用程序中resources目錄下的資源
圖 3 JSF應用程序中resources目錄下的資源

JSF 2.0也包括顯示和處理資源的API,使用javax.faces.application.Resource類顯示一個資源,使用Javax.faces.application.ResourceHandler類創建資源的實例。有關JSF 2.0的更多信息,請參閱JSR 314規范。

【51CTO.com譯稿,非經授權請勿轉載。合作站點轉載請注明原文譯者和出處為51CTO.com,且不得修改原文內容。】

原文:Introducing the Java EE 6 Platform 作者:Ed Ort

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved