ZK Web框架6.0發布:新型數據綁定系統

fmms 12年前發布 | 13K 次閱讀 ZK

Potix,這家提供 ZK 框架的公司最近發布了該基于 Java 的 Ajax Web 應用框架的6. 0 版。ZK 是一款開源 Java 框架,使得開發者能夠基于 Ajax(無需編寫任何 JavaScript)來開發豐富的互聯網應用。除了提供樣例演示外,公司官方網站還羅列了幾個現實生活中使用 ZK 的應用。

Google Web Toolkit 采用的方式類似,ZK 抽象了所有 JavaScript 和 HTML,開發者只需關注運行在服務器端的面向業務邏輯的 Java 代碼即可。這可以通過實現一個在服務器端的事件引擎和一個在客戶端(Web 瀏覽器)的 JavaScript 來達到。按這種方式,服務器端數據和客戶端呈現之間的同步完全是自動的。開發者可以用自己熟悉的桌面框架(比如 Swing)事件模型來編寫一個完整的應用。

這次最新版本中的改變包括:

  • 遵循 MVVM 模式的新型“ZK 綁定”系統
  • 運行在服務器端的 jQuery/CSS 3 風格選擇器
  • 從 jQuery 1.4.x 升級到1.6.x(性能提高)
  • 高級模板
  • 面向 Servlet 3 異步處理的 ZK Comet 支持
  • 新組件(而棄用老組件)
  • 升級到 Java 5
  • 新的默認主題選擇

其中最重要的一個改變是新型數據綁定系統。ZK 遵循 Model View ViewModel 模式(MVVM),這里的視圖模型(ViewModel)層負責將模型(Model)中的值轉化為視圖(View),并且當視圖被用戶改變時,將其更新回模型。圖形化用戶界面由標記語言聲明,該語言完全和模型(Model)中包含的數據分離。在 ZK 框架中被使用的標記稱作 ZK 用戶界面標記語言(ZUML),而真正的業務邏輯駐留在 Java 代碼中。這里的一大原則就是 ZUML 能夠被非編程人員編輯,這樣就可以并行進行用戶界面(UI)和 Java 代碼的開發,從而提高效率。該模式并非 ZK 專屬,其它大家熟知的例子包括 Mozilla 的 XUL 和 Miscrosoft 的 XAML。ZK 也支持通過 ZK Richlets,使用純 Java 來創建用戶圖形界面(GUIs)。

“ZK 綁定”支持 EL2. 2 表達式,使得可配置數據能夠在 ZUML 圖形化組件和服務器端 Java 對象之間傳輸(單向或雙向)。直接支持在 CDISeamSpring beans 上的綁定。由于升級到 Java 5,允許在服務器端代碼中使用泛型和類型安全。需要說明的是,對那些需要 ZK 5 的老式綁定系統,或目前還不想升級的用戶來說,老版本仍然提供支持。

另一個要介紹的新特性是提供了面向服務器端Java 代碼的 jQuery 風格選擇器。該功能給開發者提供了一種簡潔又方便的方式來訪問服務器端組件。下面是從 ZK 文檔中直接拿來的一個樣例:

Window win;

// returns all components with id "myId" under the Window win. (including itself)

Selectors.find (win, "#myId");

// returns all components whose .getLabel () value is "zk" (if applicable)

Selectors.find (page, "[label='zk']");

// you can assemble the criteria:

// returns all labels, whose parent is a window of id "win", and whose value is "zk"

Selectors.find (page, "window#win > label[value='zk']");

最后,ZK 6.0 利用了 Servlet 3.0 規范中對異步請求的支持。這意味著可以使用每個請求對應一個線程(Thread-Per-Request)的實現方式,而非每個連接對應一個線程(Thread-Per-Connection)。由于線程在不需要時可以更頻繁的循環使用,性能就會得到提高。

ZK 6.0 的下載包含多個版本,這由其許可決定。更多的信息可以通過參考文檔Javadocs 來了解。源代碼在 GitHub 上可以得到。升級指導文檔也已經可用。

查看英文原文:ZK Web Framework 6.0 Released: New Data Binding System
來自: InfoQ

 本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!