The core of ZK consists of an Ajax-based event-driven mechanism, over 123 XUL and 83 XHTML-based components , and a markup language for designing user interfaces. Programmers design their application pages in feature-rich XUL/XHTML components, and manipulate them upon events triggered by end user’s activity. It is similar to the programming model found in desktop GUI-based applications.
ZK takes the so called server-centric approach that the content synchronization of components and the event pipelining between clients and servers are automatically done by the engine and Ajax plumbing codes are completely transparent to web application developers. Therefore, the end users get the similar engaged interactivity and responsiveness as a desktop application, while programmers’ development retains a similar simplicity to that of desktop applications.
In addition to component-based programming in a manner similar to Swing, ZK supports a markup language for rich user interface definition called ZUML.
ZUML is designed for non-programmer developers to design user interfaces intuitively.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.
Differences to 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 their 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.
JRE version 1.4 or laterA Web server supporting Servlet 2.3 or later
Prerequisites of programming skills
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 markupZUML 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.