ZK Ajax and Mobile Framework
eclipse, servlet, jsp, ajax, java July 10th, 2008
manyaklara merhaba,
teknolojilerin havalarda uçuştuğu günümüzde java ile hem ajax teknolojisine sahip hem de hafif ve hızlı çalışan bir web önyüz framework’ü arayışımız sırasında karşımıza ZK çıkıyor.
ZK framework’ü kısaca, .zul uzantısına sahip xml formatında ya da .zhtml uzantısıyla dhtml formatında source’a sahip, ihtiyacımız olabilecek bir çok hazır kompanenti (modal boxlar, gridler, listeler vs vs) içinde barındıran bir framework.
ZK framework’ünü kullanmaya başlamak oldukça kolay. adım adım anlatalım:
1. http://sourceforge.net/projects/zk1 adresinden zk-bin-3.0.6.tar.gz dosyasını indiriyoruz.
2. bu dosyayı bir yere açıyoruz, içerisindeki dist/lib dizini içerisindeki ve dist/lib/ext dizini içersindeki .jar dosyalarını projemize ekliyoruz (WEB-INF/lib dizinine)
3. web.xml dosyasına aşağıdakileri ekliyoruz:
<?xml version="1.0" encoding="UTF-8"?> <web-app ...> ... <!-- //// --> <!-- ZK --> <listener> <description>Used to cleanup when a session is destroyed</description> <display-name>ZK Session Cleaner</display-name> <listener-class>org.zkoss.zk.ui.http.HttpSessionListener</listener-class> </listener> <servlet> <description>ZK loader for ZUML pages</description> <servlet-name>zkLoader</servlet-name> <servlet-class>org.zkoss.zk.ui.http.DHtmlLayoutServlet</servlet-class> <!-- Must. Specifies URI of the update engine (DHtmlUpdateServlet). It must be the same as <url-pattern> for the update engine. --> <init-param> <param-name>update-uri</param-name> <param-value>/zkau</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>zkLoader</servlet-name> <url-pattern>*.zul</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>zkLoader</servlet-name> <url-pattern>*.zhtml</url-pattern> </servlet-mapping> <servlet> <description>The asynchronous update engine for ZK</description> <servlet-name>auEngine</servlet-name> <servlet-class>org.zkoss.zk.au.http.DHtmlUpdateServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>auEngine</servlet-name> <url-pattern>/zkau/*</url-pattern> </servlet-mapping> <!-- //// --><!-- /////////// --> <!-- Miscellaneous --> <session-config> <session-timeout>120</session-timeout> </session-config> <welcome-file-list> <welcome-file>index.zul</welcome-file> <welcome-file>index.zhtml</welcome-file> ... </welcome-file-list> </web-app>
4. new File diyerek index.zul adını veriyoruz
5. index.zul dosyasına aşağıdaki kodu ekliyoruz:
<window title="Hello" border="normal">
Hello World!
</window>
6. projeyi deploy ediyoruz, test.zul dosyasını browserdan görüntülüyoruz, işte bu kadar!

bir başka örnek:
<window title="Vote" border="normal">
Do you like ZK? <label id="label"/>
<separator/>
<button label="Yes" onClick="label.value = self.label"/>
<button label="No" onClick="label.value = self.label"/>
</window>

ayrıntıları ZK framework’ün resmi web sitesi olan http://www.zkoss.org/ dan alabilirsiniz.
anlattıklarımı bu adreste http://www.zkoss.org/smalltalks/eclipse/ek.html daha detaylı ve Eclipse için sıfırdan anlatmışlar.
oldukça kolay ve keyifli geliştirilmesi artısının yanında malesef jsf’deki gibi managed bean benzeri bir yapısı olmadığı için tüm data işlerini ve bussiness logic’i .zul kodları içerisinde <zscript> tagleri arasında sanki eskiden jsp’ler içersinde <% %> tag’leri arasında kod yazarmış gibi yazmak zorunda olmanız bana göre büyük bir eksi. gene de hoşunuza gidebilir. ben de biraz daha bakıcam belki severim :)
görüşmek dileğiyle, manyak kalın…
Social Bookmarking
August 6th, 2008 at 10:55
güzel bir yazı olmus ancak yazının son kısmında yazgıdınız jsp benzeri veya tag lar konusunda bi yanlısınızı duzeltmek isterim. zk da zul dosyası içinde use komutunu kullanarak sıfır java script veya zscript kullanarak arka tarafta full java kodu yazarak uygulama gelistirebilirsiniz…
August 15th, 2008 at 16:22
evet dediğiniz doğru fakat benim orda kastettiğim jsf deki managed bean’ler gibi düzgün bir yapı yok, gene script yazmış oluyorsunuz bir yerde, yanlış mıyım?
September 22nd, 2008 at 7:13
yok aslında script hic yazmıyorsunuz(zscript veya javascript) tamamen java kodlama yaparak zk ile butun uygulamanızı yazabilirsiniz. Buna gerekirse zul uzantılı on yuzlerimizde dahil.