´î½¨¿ª·¢»·¾³²½Ö裬ÈçºÎ´î½¨zookeeper¼¯Èº
chanong
|1 zk¼ò½é
ZK¿ò¼ÜÊÇÒ»¸öÓÃJAVAʵÏֵļòµ¥µ«¹¦ÄÜÇ¿´óµÄ±íʾ²ã¿ò¼Ü¡£ËüÅ䱸ÁË»ùÓÚAjaxµÄʼþÇý¶¯ÒýÇæ£¬ÕâÊÇËü×î´óµÄÌØµã¡£ÕâÎÞÐèJavaScript ¼´¿ÉÍê³É£¬½çÃæ´´½¨ºÍʼþÏìÓ¦Ö»ÄÜͨ¹ý±ê¼ÇÓïÑÔZUML£¨ZK Óû§½çÃæ±ê¼ÇÓïÑÔ£©À´ÊµÏÖ¡£
ZKʵÏÖÍêÈ«ÓÃJavaʵÏÖ£¬¿ª·¢¹ý³ÌÖÐûÓÐʹÓÃJavaScript´úÂ룬¶øÊÇͨ¹ýZKÒýÇæÍ¨¹ý±àÒëzulÎļþ£¨ÀàËÆÓÚJSPÎļþµÄZKÔ´Îļþ£©À´±àÒëÒ³ÃæÔ´Â룬ÈÔÈ»¿ÉÒÔ¿´µ½Í¨¹ýÏÔʾ½á¹û¡£ ZKʵÏֵı¾ÖÊÊÇͨ¹ýJavaScript+CSSÀ´´¦ÀíÒì²½ÇëÇó¡£
×é¼þÊÇZKÖÐ×î³£¼ûµÄÔªËØ¡£ÕâÀàËÆÓÚ»ùÓÚ×é¼þµÄ±à³Ì£¬ÀýÈçJAVA Swing »òVB¡£ÓëZK Studio½áºÏ£¬¿ÉÒÔʵÏÖÒ³ÃæÐ§¹ûµÄ¿ÉÊÓ»¯¡¢¶¯Ì¬Õ¹Ê¾¡£
ÌØÕ÷£º
1.±íʾ²ã¹¤¾ß¡£Äã¿ÉÒÔ½«ËüÓëHibernate¡¢SpringµÈ½áºÏÆðÀ´¹¹½¨ÍêÕûµÄWEBÓ¦ÓóÌÐò¡£
2.ÒÔ·þÎñÆ÷ΪÖÐÐĵĿò¼Ü¡£·â×°ÁËAjaxºǫ́´¦Àí¼¼Êõ¡£·þÎñÆ÷ÓÉÁ½¸öÖØÒª²¿·ÖʵÏÖ£ºZK¼ÓÔØÆ÷ºÍZKÒì²½¸üÐÂÒýÇæ¡£Ç°Õ߸ºÔð½âÎöURLÇëÇó²¢Éú³ÉHTMLÒ³Ãæ£¬ºóÕ߸ºÔð¼àÌýºÍ´¦Àí¿Í»§¶ËAjaxÇëÇ󣬸üÐÂZK×é¼þÊôÐÔ£¬²¢Ïò¿Í»§¶Ë·¢ËÍAjaxÏìÓ¦¡£
3.»ùÓÚ×é¼þµÄGUI¡£Ò³ÃæµÄ¿É¼û²¿·ÖÓÉ×é¼þ×é³É¡£ÓëHTML ±êÇ©ÀàËÆ£¬µ«±ÈHTML ±êÇ©¸üÁé»î¡£
ȱµã£º
1. ZKÓëJAVA½ôÃܼ¯³É¡£ËùÓÐZK×é¼þ¶¼ÊÇÓÃJAVAʵÏֵģ¬Òò´Ë¶Ô×é¼þµÄ¿ØÖƽöÏÞÓÚJAVAÓïÑÔ¡£Ëü²»ÄÜÍÑÀë¿ØÖÆ²ã¡£
2.ѧ**×ÊÁϺÍÎĵµÏà¶Ô½ÏÉÙ¡£×îÈ«ÃæµÄZKÓ¦ÓÃÆäʵ¾ÍÊǹٷ½µÄDEMO¡£¡¶ZK¿ò¼Ü¡ª¡ªAjax¿ª·¢Êµ¼ù¡·ÊéÖÐҲʹÓÃÁ˹ٷ½µÄÀý×Ó¡£Òò´Ë£¬ÓÐЩʼþºÍÊôÐÔÖ»ÄÜ×Ô¼ºÌ½Ë÷¡£
ZKµÄ²âÊԱȽÏÈõ¡£¸ÃÒ³ÃæÎÞ·¨Ê¹Óù¤¾ß½øÐвâÊÔ¡£Ö»ÄÜÊÖ¶¯²âÊÔ¡£µ÷ÊÔÒ²²»·½±ã¡£
2 °²×°²¿Êðzk¿ª·¢»·¾³
2.1 JDK1.6ÒÔÉ**æ±¾
2.2 Tomcat6ÒÔÉ**æ±¾
2.3 Eclipse3.4ÒÔÉ**æ±¾
2.4 zk²å¼þ£¨zkstudio_1.0.1_ganymede.zip£©
¹ÙÍø£ºhttp://www.zkoss.org
µÚÒ»ÖÖ·½·¨£ºÊ¹ÓÃEclipse Ïòµ¼°²×°²å¼þ¡£°ïÖú/Èí¼þ¸üÐÂ/ËÑË÷ºÍͨ¹ý
°²×°Ëü£¬ÔÚµ¯³öµÄ²Ëµ¥ÖÐÑ¡Ôñ¡°ËÑË÷Òª°²×°µÄй¦ÄÜ¡±£¬È»ºóÔÚÏÂÒ»¸ö²Ëµ¥Öе¥»÷¡°ÏÂÒ»²½¡±¡£
Ñ¡Ôñ¡°Ð½¨±¾µØÕ¾µã¡±»ò¡°Ð½¨´æµµÕ¾µã¡±£¬ÕÒµ½ÏÂÔØµÄ²å¼þËùÔÚĿ¼£¬È»ºóÑ¡ÔñÒª°²×°µÄ²å¼þ¡£
µÚ¶þÖÖ·½·¨£º²å¼þĿ¼ºÍ¹¦Äܲ¿¼þλÓÚEclipse Ö÷Ŀ¼£¨%ECLIPSE_HOME%£©ÖС£
Ŀ¼¡£µ±Äú½âѹËõ²å¼þʱ£¬Äúͨ³£»áÔÚ½âѹËõµÄÎļþ¼ÐÖп´µ½Ò»¸öpluginsÎļþ¼Ð¡£
ѹËõºó£¬Äú»¹½«¿´µ½features Îļþ¼Ð¡£Í¨³££¬Äú¿ÉÒÔ½«²å¼þÎļþ¼ÐµÄÄÚÈÝÖ±½Ó¸´ÖƵ½£º
%ECLIPSE_HOME%\pluginsĿ¼£¨Èç¹û½âѹºóµÄ²å¼þĿ¼ÖÐÓÐfeaturesÎļþ¼Ð£©
½«´ËÎļþ¼ÐµÄÄÚÈݸ´ÖƵ½%ECLIPSE_HOME%\features¡£ÖØÐÂÆô¶¯Eclipse ÔÊÐíÄú£º
ʹÓÃÄú¸Õ¸Õ°²×°µÄ²å¼þ¡£
3 ÎÒÃÇͨ¹ýÒ»¸ö¾ßÌåµÄСÀý×ÓÀ´Ïêϸ½âÊÍÒ»ÏÂZKµÄ¿ª·¢¹ý³Ì¡£
3.1. ´´½¨zkÏîÄ¿
3.2 ´´½¨¼òµ¥µÄzulÒ³Ãæ
3.3 ÐÞ¸ÄzkTest.zulÄÚÈÝ
3.4 Æô¶¯Tomcat·ÃÎʲ¢²é¿´½á¹û
4 zk×é¼þµÄ²¿ÊðºÍʹÓÃ
4.1 ×¢Ò⣺ËùÓÐzk×é¼þÃû³Æ¾ùÓÉСд×Öĸ×é³É
Òª¶ÁÈ¡Java ´úÂë»òEL ±í´ïʽÖеÄ×é¼þ£¬ÇëʹÓÃid ÊôÐÔÀ´±êʶ¸Ã×é¼þ¡£ÔÚÏÂÃæ
´ËʾÀýÉèÖñêÇ©µÄ±êʶ·û£¬ÒÔ±ãÔÚ°´Ï°´Å¥Ê±¿ÉÒÔ¶ÔÆä½øÐвÙ×÷¡£
ÖµµÃ¡£ÏÂÃæµÄÁ½¸öÀý×Ó½«°ïÖúÄúÀí½âÉí·ÝµÄ×÷Óá£
Ò³Ãæ±êÌâ=\'²âÊÔʹÓÃID\' contentType=\'text/html;charset=UTF-8\'
Äãϲ»¶ZKÂð£¿
Èç¹û°´¡°ÊÇ¡±°´Å¥£¬Äú½«¿´µ½ÒÔÏÂЧ¹û¡£
idÊôÐÔÔÚEL±í´ïʽÖеÄÓ¦ÓÃÈçÏ£º
Õâ¶Î´úÂëµÄʵÏÖÊǽ«Îı¾¿òµÄÖµ¸³¸øÒ»¸ö±êÇ©¡£ ¡°Ô´¡±´ú±íÎı¾¿ò¡£
²Ù×÷ÓëÎı¾¿òÏàͬ¡£
4.2 ʹÓÃforEachÊôÐÔ
forEach ÊôÐÔÓÃÓÚ¿ØÖÆ´´½¨µÄ×é¼þÊýÁ¿¡£Èç¹ûΪÕâ¸ö¶ÔÏóÖ¸¶¨Ò»¸ö¶ÔÏ󼯺ϣ¬ZK
ZK¼ÓÔØÆ÷Ϊÿ¸öÖ¸¶¨µÄ¼¯ºÏÏî´´½¨Ò»¸ö×é¼þ¡£ÔÚÏÂÃæµÄZUML Ò³ÃæÖУ¬
listitem ÔªËØ±»·ÖÅäÁËÈý´Î£¨·Ö±ðΪ¡°ÐÇÆÚÒ»¡±¡¢¡°ÐÇÆÚ¶þ¡±ºÍ¡°ÐÇÆÚÈý¡±£©£¬È»ºóÔÙ±»·ÖÅäÁËÈý´Î¡£
ÏîÄ¿Çåµ¥¡£
Ò³Ãæ±êÌâ=\'ÐÂÒ³Ãæ±êÌâ\' contentType=\'text/html;charset=UTF-
8\'
String Contacts[]=new String[]{ \'ÐÇÆÚÒ»\', \'ÐÇÆÚ¶þ\', \'ÐÇÆÚÈý\',
\'ÖÜËÄ\'£¬
\'ÐÇÆÚÎåÐÇÆÚÁùÐÇÆÚÌì\' };
¿ÉÍ϶¯=\'true\'/
µ±ÄãÔËÐдúÂëʱ£¬Äã»áµÃµ½ÒÔÏÂЧ¹û£º
¸ÅÀ¨£º
³ýÁËʹÓÃforeachÖ®Í⣬»¹¿ÉÒÔͨ¹ýforEachBeginºÍforEachEndÀ´¿ØÖƵü´ú¡£
4.3 ÈçºÎʹÓúÍÓ¦ÓÃ
* use ºÍapply Êǽ«Zul Ò³ÃæÓëJava Àà¹ØÁªÆðÀ´µÄ¼ü£¬ÔÊÐíÄúΪzk ʵÏÖMVC¡£
ʹÓãº
use ÊÇÒ»¸ö×é¼þÀ࣬¶ÔӦÿ¸ö×é¼þʵÌå¡£
ҪʹÓÃuse£¬ÏàÓ¦µÄÀà±ØÐëÀ©Õ¹Window¡£
ָʾ£º
ÊÊÓãº
apply ÊÇÒ»¸ö°ïÖúÆ÷À࣬¿ÉÒÔ°ïÖúÄúÍê³ÉÒ»×é²Ù×÷¡£Ö´ÐÐÐèҪʵÏÖÒ»¸ö×÷Çú¼Ò»òÀ©Õ¹GenericForwardComposer
ָʾ£º
¸ÅÀ¨£º
com.zhb.controlÖ¸Ïò¶ÔÓ¦µÄ°ü¡£ IndexÊǶÔÓ¦°üÖеÄJavaÀà¡£
µ±Ò»¸özulÒ³Ãæ±»¼ÓÔØ²¢Ê¹ÓûòÓ¦ÓÃʱ£¬»á¸ù¾Ý°üÃû¼ÓÔØ¸Ã°üϵÄJavaÀà¡£
4.4 ³¢ÊÔͨ¹ý²é¿´zul Ò³ÃæÀ´ÉêÇë¶ø²»ÏÈʹÓÃËü
pagetitle=\'ÐÂÒ³Ãæ±êÌâ\' contentType=\'text/html;charset=UTF-8\'
/p
pString[] data={\'»¶Ó¹âÁÙ£¡\',\'ºÜ¸ßÐËÈÏʶÄ㣡\',\'´ó¼ÒºÃ£¡\'};/p
pfor(int i=0;idata.length;++i)/p
p{ ±êÇ©l=бêÇ©(Êý¾Ý[i]);/p
pl.maxlength=9;//×î´ó³¤¶È/p
pl.parent=a;//½«Label¿Ø¼þ°ó¶¨µ½vbox/p
p}/p
p
label.setValue(\'´ó¼ÒºÃ\');
¸ÅÀ¨£º
ËüÊÇJava ´úÂëºÍzul Ò³ÃæµÄ»ìºÏÌ壬Òò´Ë¶ÔÓÚά»¤»òÀ©Õ¹Ò³ÃæºÍ´úÂëûÓÐÓô¦¡£
4.5 ʹÓÃzulÒ³ÃæºÍJavaÀà
×æÂ³Ò³Ãæ£º
Ò³Ãæ±êÌâ=\'use_simple\' contentType=\'text/html;charset=UTF-8\'
JavaÀࣺ
°ücom.zhb.control;
µ¼Èëorg.zkoss.zul.Button¡£
µ¼Èëorg.zkoss.zul.Window¡£
publicclassUse_simpleÀ©Õ¹´°¿Ú{
/**
*ÈçºÎÔĶÁ
*/
¹«¹²ÎÞЧ³õʼ»¯£¨£©{
this.setTitle(\'use_simple !\');//¸ø´°¿ÚµÄtitleÊôÐÔ¸³Öµ
//¸ù¾ÝID»ñÈ¡zul×é¼þ¶ÔÏ󲢸øLabelÊôÐÔ¸³Öµ
°´Å¥ok_btn=(button)this.getFellow(\'ok\');
ok_btn.setLabel(\'È·¶¨\');
//¸ù¾ÝID»ñÈ¡zul×é¼þ¶ÔÏ󲢸øLabelÊôÐÔ¸³Öµ
°´Å¥cancel_btn=(button)this.getFellow(\'È¡Ïû\');
cancel_btn.setLabel(\'È¡Ïû\');
}
/**
*È·¶¨·½·¨
*/
¹«¹²ÎÞЧonOk£¨£©{
//¸ø´°¿ÚµÄtitleÊôÐÔ¸³Öµ
this.setTitle(\'ÄãºÃÊÀ½ç£¡\');
}
/**
*ÈçºÎÈ¡Ïû
*/
¹«¹²ÎÞЧonCancel(){
//¸ø´°¿ÚµÄtitleÊôÐÔ¸³Öµ
this.setTitle(\'ÄãºÃ£¡\');
}
}
4.6 ʹÓÃapplyµÄzulÒ³ÃæºÍJavaÀà
ʵÏÖComposer ½Ó¿Ú
Ò³£º
Ò³Ãæ±êÌâ=\'composer\' contentType=\'text/html;charset=UTF-8\'
JavaÀࣺ
°ücom.zhb.control;
µ¼Èëorg.zkoss.zk.ui.Component¡£
µ¼Èëorg.zkoss.zk.ui.event.Event¡£
µ¼Èëorg.zkoss.zk.ui.event.EventListener¡£
µ¼Èëorg.zkoss.zk.ui.util.Composer¡£
µ¼Èëorg.zkoss.zul.Label¡£
µ¼Èëorg.zkoss.zul.Window¡£
publicclass MyComposer ʵÏÖComposer{
˽È˱êÇ©show_label£»
@¸²¸Ç
publicvoid doAfterCompose(Component comp) Å׳öÒì³£{
//TODO ×Ô¶¯Éú³ÉµÄ·½·¨´æ¸ù
((Window)comp).setTitle(\'Ó¦ÓÃÊÇ×îºÃµÄ£¡\');
show_label=(Label)comp.getFellow(\'show_label\');//¸ù¾ÝID»ñÈ¡×é¼þ¶ÔÏó
show_label.setValue(\'´ó¼ÒºÃ£¡\');//¸³Öµ
//Ìí¼Óʼþ
comp.addEventListener(\'onShow_label\', new EventListener(){
@¸²¸Ç
publicvoid onEvent(event event) Å׳öÒì³£{
//TODO ×Ô¶¯Éú³ÉµÄ·½·¨´æ¸ù
show_label.setValue(\'ÎÒ²»ÄÜ£¡\');
}
});
}
¸ÅÀ¨£º
ʹÓÃextends Window ʱҲ»á³öÏÖͬÑùµÄÎÊÌâ¡£ÕâÊÇÒ»¸ö¸ü¼òµ¥µÄ·½·¨£º
À©Õ¹GenericForwardComposer Àà
×æÂ³Ò³Ãæ£º
Ò³Ãæ±êÌâ=\'apply_simple\' contentType=\'text/html;charset=UTF-8\'
JavaÀࣺ
°ücom.zhb.control;
µ¼Èëorg.zkoss.zk.ui.Component¡£
µ¼Èëorg.zkoss.zk.ui.util.GenericForwardComposer¡£
µ¼Èëorg.zkoss.zul.Button¡£
µ¼Èëorg.zkoss.zul.Label¡£
publicclassApply_simpleextends GenericForwardComposer {
//¶¨Òå×é¼þ
˽ÓбêÇ©first_label;//±êÇ©
×ÔÓÐÆ·ÅÆSecond_label£»
˽Óа´Å¥count_button;//°´Å¥
/**
*ÈçºÎÔĶÁ
*/
@¸²¸Ç
publicvoid doAfterCompose(Component comp) Å׳öÒì³£{
//TODO ×Ô¶¯Éú³ÉµÄ·½·¨´æ¸ù
super.doAfterCompose(comp);
first_label.setValue(\'NO.1\');
Second_label.setValue(\'NO.2\');
count_button.setLabel(\'°´Å¥\');
}
/**
* °´Å¥µã»÷ʼþ
*/
publicvoid onClick$count_button(ʼþʼþ){
first_label.setValue(\'NO.3\');
Second_label.setValue(\'NO.4\');
}
}
¸ÅÀ¨£º
µ±À©Õ¹GenericForwardComposerÀàʱ£¬doAferComposer½«×¢ÈëÉÏÃæ¶¨ÒåµÄ×é¼þ¡£Òò´Ë£¬ÎÒÊ¡ÂÔÁËgetFollow(String id) ·½·¨¡£ÖÁÓÚforward£¬Äú²»ÐèÒªÔÚÒ³ÃæÖÐʹÓÃforward£¬ÒòΪGenericForwardComposerÀà»á×Ô¶¯ÎªÄúÍê³Éת·¢¹¤×÷¡£°´Å¥Ê¼þÀïÃæµÄEventʼþ¿ÉÒÔÊ¡ÂÔ¡£
Õâ¾ÍÊÇÎÒÃÇʵ¼ÊʵÏÖzk MVC µÄ·½Ê½¡£Ò³ÃæºÍÂß¼´úÂë·ÖÀë¡£ÕâÌá¸ßÁËzul ºÍJava ´úÂëµÄά»¤ºÍÀ©Õ¹¡£
Çë¶à¶à¹Ø×¢ÎÒµÄÍ·ÌõºÅ£¬Ð»Ð»¡£








