Menu
Home Explore People Places Arts History Plants & Animals Science Life & Culture Technology
On this page
ZK (framework)
AJAX/XUL Web application framework

ZK is an open-source Ajax Web application framework written in Java that enables easy creation of graphical user interfaces for Web applications. It uses a server-centric approach where synchronization and event handling are automatically managed, giving users desktop-like interactivity without exposing Ajax plumbing to developers. Unlike standard request-response methods, ZK exchanges browser-server data via JSON and an efficient event-driven model. ZK supports rich UI design using ZUML, a mark-up language that blends XUL and XHTML components, and allows embedding scripts in Java via BeanShell. This framework is suitable for both programmers and non-programmers seeking feature-rich, responsive web interfaces.

We don't have any images related to ZK (framework) yet.
We don't have any YouTube videos related to ZK (framework) yet.
We don't have any PDF documents related to ZK (framework) yet.
We don't have any Books related to ZK (framework) yet.
We don't have any archived web articles related to ZK (framework) yet.

Features

  • Simply Java. ZK is renowned for its "Ajax without JavaScript" approach, enabling developers to build rich web applications transparently without any knowledge of Ajax and JavaScript.
  • Responsive design themes along with Bootstrap support
  • HTML 5 and CSS 3 support
  • Over 100 Ajax components offer UI designers a variety of feature rich components to meet the demands of enterprise Ajax applications.
  • ZUML makes the design of rich user interfaces similar to authoring HTML pages. ZUML is a variant of XUL inheriting all features available to XML, and separates the UI definition from the run-time logic.
  • Event-driven component-based model (similar to desktop programming models) supporting multiple event driven GUI design patterns.5
  • Support for Model-View-Controller (MVC),6 Model-View-Presenter7 and Model-View-ViewModel (MVVM)8 design patterns
  • Databinding capability via in-ZUML-page annotations that automates CRUD and state synchronization between UI view and the data and POJO.
  • Application components, such as spreadsheet, pivot table, and calendar.
  • Embedding scripting support with Java (Beanshell9). This is an important benefit as you can use a unified programming language for both user interface and backend programming. Optional support for other serverside Java scripting in other languages such as JavaScript (Rhino10), Ruby (JRuby11), Python (Jython12) and Groovy.13
  • Support for integrating with existing web frameworks via a JSP custom tag library, JSF support, Portlet, and a Servlet Filter. Has support for Spring and Hibernate.
  • Extensible in that programmers can create new custom UI controls. Groups of controls can be re-used as a macro component.
  • Extensive charting with ZK Charts

Differences from XUL

  • ZK is a server side framework which emits HTML and thus does not depend on client side presence of Gecko making it portable to any browser. ZK takes ZUML (xul and xhtml) serverside pages as input and outputs dhtml for the browser.
  • ZK processes user interface logic on the server in Java. This increases choice in the scripting engines and application libraries that can be used to create logic. Presentation effects can be delegated to the browser using the Client-side Actions feature to reduce server load for dhtml effects. Running the application logic on the server in a single application container reduces the amount of cross browser and browser version testing when compared to extensively programming the DOM at the browser.
  • While ZK and XUL have an overlapping subset of components, ZK has its own unique component sets. The component library can be extended with custom components. Macro components can be defined that are composites of components.
  • ZK provides serverside databinding annotations to declaratively bind UI components to serverside data.
  • Look and Feel differences.

System requirements

  • JRE version 1.5 or later
  • A Web server supporting Servlet 2.3 or later

Prerequisites of programming skills

Required

  • Basic knowledge of Java or a Java scripting engine language such as Groovy, Rhino (Java JavaScript), JRuby (Java Ruby) or Jython (Java Python)
  • Basic knowledge of HTML and XUL

Optional

ZUML

ZUML (ZK User Interface Markup Language) is a markup language for rich user interfaces definition.

  • ZUML is designed for non-programmers to design user interfaces efficiently with the ZUML markup
  • ZUML allows developer to meld different markup languages, such as Mozilla XUL language and XHTML, seamlessly into the same page.
  • ZUML allows developers to embed script in pure Java language (interpreted by BeanShell) and use EL expressions to manipulate the components and access data.
  • ZUML is supported by ZK.
  • Official Documentation : ZUML Reference

Client-side technologies

ZK is a server-centric framework. Technically you don't need to know about the implementation at the client side. It is how ZK Mobile running on Java Mobile VM is done.

Since ZK 5.0, the so-called Server+client Fusion14 architecture is introduced. Developers are allowed to access the client-side widgets directly if they want to. ZK Client Engine is based on jQuery.15 Technically you can use jQuery-compliant libraries and widgets.

Add-Ons

See also

  • Free and open-source software portal
Wikibooks has a book on the topic of: ZK

Official website

References

  1. Chen, Henri (2008). ZK - Ajax without JavaScript. Apress. p. 125. ISBN 978-1-59059-901-3. 978-1-59059-901-3

  2. Staeuble, Markus (2008). ZK Developer's Guide. Packt Publishing. p. 184. ISBN 978-1-84719-200-4. 978-1-84719-200-4

  3. Van der Schyff, Andre (2009-03-31). "A look at MVC frameworks". ITWeb. Archived from the original on 2009-08-22. Retrieved 2009-04-14. MVC frameworks provide limited functionality when compared to ZK, Echo and other Java Web frameworks. https://web.archive.org/web/20090822231812/http://www.itweb.co.za/sections/industryinsight/software/vanderschyff090331.asp?S=Software&A=SFT&O=google

  4. "ZK Explorer". Zkoss.org. Retrieved 2010-08-25. http://www.zkoss.org/zkdemo/

  5. Massey, Simon. "Implementing event-driven GUI patterns using the ZK Java AJAX framework". www.ibm.com/. IBM. Retrieved 5 July 2014. http://www.ibm.com/developerworks/websphere/zones/portal/proddoc/zkjavaajax/

  6. "ZK - ZK Developer's Reference/MVC - Documentation". Books.zkoss.org. 2014-01-27. Retrieved 2014-03-02. http://books.zkoss.org/wiki/ZK%20Developer's%20Reference/MVC

  7. "ZK - Small Talks/2011/November/Hello ZK MVVM - Documentation". Books.zkoss.org. Retrieved 2014-03-02. http://books.zkoss.org/wiki/Small%20Talks/2011/November/Hello%20ZK%20MVVM#MVP_Implementation

  8. "ZK - Small Talks/2011/November/MVVM in ZK 6 - Design your first MVVM page - Documentation". Books.zkoss.org. Retrieved 2014-03-02. http://books.zkoss.org/wiki/Small_Talks/2011/November/MVVM_in_ZK_6_-_Design_your_first_MVVM_page

  9. "Lightweight Scripting for Java". BeanShell. Retrieved 2014-03-02. http://www.beanshell.org/

  10. "Rhino | MDN". Mozilla.org. 2012-08-09. Retrieved 2014-03-02. https://www.mozilla.org/rhino/

  11. "Home — JRuby.org". Jruby.codehaus.org. 2014-02-25. Archived from the original on August 30, 2009. Retrieved 2014-03-02. https://web.archive.org/web/20090830214445/http://jruby.codehaus.org/

  12. "Jython : Homepage". Jython.org. Archived from the original on 2009-05-16. Retrieved 2014-03-02. https://web.archive.org/web/20090516192515/http://www.jython.org/Project/

  13. "Groovy - Home". Groovy.codehaus.org. 2014-02-18. Archived from the original on March 2, 2014. Retrieved 2014-03-02. https://web.archive.org/web/20140302111159/http://groovy.codehaus.org/

  14. Clare, Timothy (2010-02-09). "Server+client Fusion: An Architectural Proposal". Dr. Dobb's. A good framework architecture is flexible empowering developers and architects to implement their applications in a smart and elegant manner. http://www.drdobbs.com/java/222700556;jsessionid=441AXOKJX3ECZQE1GHPSKH4ATMY32JVN?pgno=1

  15. Mahajan, Sachin (2010-10-19). "Enhance Ajax development with a fusion of jQuery, ZK, and Java code". IBM developerWorks. The marriage between server-side Java code and jQuery can help you tackle the challenges in enterprise Ajax application development. http://www.ibm.com/developerworks/web/library/wa-aj-zkquery/