ZK Web框架6.0發布:新型數據綁定系統
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 對象之間傳輸(單向或雙向)。直接支持在 CDI、Seam 或 Spring 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