ZK ÇATISI İLE SPRING ENTEGRASYONU
ZK bildiğiniz üzere popular bir java web çatısıdır. http://www.zkoss.org/ adresinden erişebileceğiniz çatının CE versiyonu ücretsiz olarak kullanabiliyorsunuz.Bu versiyonu kullanarak geliştirme yapacağız. Bunun yanında PE,EE versiyonları da bulunmaktadır.
CE versiyonu sadece "VariableResolver" özelliği ile Spring entegrasyonu sağlar. (Diğer versiyonlarda Security vs. diğer entegrasyonlarda yapılabilimektedir.) Bu şekilde Spring kabından ihtiyaç olan bean alınarak ZK görüntüsüne yansıtılabilinir.
ZK görüntüleri ".zul" uzantılı dosyalar ile tanımlanırlar. Bileşenler "http://www.zkoss.org/2005/zul" uzayına bağlı olarak çağrılırlar. Sürekle-Bırak desteği için Netbeans 7.1 versiyonunu indirip ZK CE 7.0 destekleyen REM dosyasını indiriyoruz. İlgili dosyayı linkten indirebilirsiniz.
http://plugins.netbeans.org/plugin/52406/rem7-0-0ce
Bu şekilde Netbeans e ZK desteği sağlamış olduk. Yeni Proje ile Java Web sekmesine ZK CE 7.0 projeleri açabiliyoruz. Projemizi oluşturduktan sonra ilk iş olarak maven desteği ile bağımlılıkları tanımlayalım.
Bu dosyada iki kısma yoğunlaşmakta fayda var. Biri springi ayağa kaldıran sınıfımız "org.springframework.web.context.ContextLoaderListener". Dosya yolunu da vererek hangi uygulama spring dosyasını kullanacağını tanımlıyoruz. Diğer nokta ise ZK nın ZKLoader tanımlaması. "org.zkoss.zk.ui.http.DHtmlLayoutServlet" sınıfı ile .zul dosyaları sunucu tarafında anlamlı hale getiriliyor.
Paket taramasını aktif hale getiriyoruz.
package com.zk.zkproject;
import org.springframework.stereotype.Repository;
/**
*
* @author 7163
*/
@Repository
public class RepoSpring {
private String ad="Burak";
private String soyad = "Tunalı";
/**
* @return the test
*/
public String getAd() {
return ad;
}
/**
* @param test the test to set
*/
public void setTest(String ad) {
this.ad = ad;
}
/**
* @return the soyad
*/
public String getSoyad() {
return soyad;
}
/**
* @param soyad the soyad to set
*/
public void setSoyad(String soyad) {
this.soyad = soyad;
}
}
Spring kabına gidecek olan sınıfımız.
package com.zk.zkproject;
import org.zkoss.bind.annotation.AfterCompose;
import org.zkoss.bind.annotation.ContextParam;
import org.zkoss.bind.annotation.ContextType;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.select.Selectors;
import org.zkoss.zk.ui.select.annotation.VariableResolver;
import org.zkoss.zk.ui.select.annotation.WireVariable;
@VariableResolver(org.zkoss.zkplus.spring.DelegatingVariableResolver.class)
public class SpringTest {
@WireVariable
private RepoSpring repoSpring;
@AfterCompose
public void initSetup(@ContextParam(ContextType.VIEW) Component view) {
Selectors.wireComponents(view, this, false);
}
private String ad;
private String soyad;
/**
* @return the showText
*/
public String getAd() {
return repoSpring.getAd();
}
/**
* @param showText the showText to set
*/
public void setAd(String ad) {
this.ad = ad;
}
/**
* @return the soyad
*/
public String getSoyad() {
return repoSpring.getSoyad();
}
/**
* @param soyad the soyad to set
*/
public void setSoyad(String soyad) {
this.soyad = soyad;
}
}
@VariableResolver ile ZK CE versiyonunda Spring kabına gidebiliyoruz. @WireVariable ile RepoSpring örneğine erişebileceğiz. Son olarak ZK görüntüsünden gösterim yapalım.
Görüntülerken "org.zkoss.bind.BindComposer" sınıfından yararlanıyoruz. viewmodel özelliğini kullanrak jsp mantığı olduğu gibi erişim sağlayabiliyoruz.
Umarım faydalı olmuştur.





Yorumlar
Yorum Gönder