前一段在网上看查找资料,无意间发现了一个 ajax框架的在线demo,被其华美的外表及简洁的代码风格所吸引,就开始了zk学习之路,经过两天的研究,发现这个框架确实不错,特别是它提供的例子,基本实现了所有web开发的需要,它还对google map进行了封装,使其使用更加容易,不过,经这两天的学习,发现它的学习资料不是太多,找好长时间也找不到多少有用的,只好研究它自带的demo了,呵呵,一段时间的研究,终于写出了一个小实例,现在提供出来,希望能对大家有帮助。该实例在eclipse3.2+myeclipse+tomcat5.5+jdk5.0上运行成功。
欢迎转载,有问题请联系我:txyhl@126.com
首先,为了让大家对其有一个感性的认识,就先去看看它的demo,相信你也会被它华美的外表所吸引
,
demo: http://www.potix.com/zkdemo/userguide/
OK,ZK学习之路开始了。
当然,要先去下载ZK,推荐网站:http://www.zkoss.org
需要下载 :zk-2.3.0.zip,现在的最高版本
如果有兴趣,也可以下载 zk-demo-2.3.0.zip,里面有它的各种应用示例。
新建一个WEB工程,工程名为:zktest
然后将zk-2.3.0/dist/lib,zk-2.3.0/dist/lib/ext,zk-2.3.0/dist/lib/zkforge目录下面的jar包引入到工程中(怎么引入我不用说了吧)
然后就开始写程序了......
web.xml
index.zul(该文件同web-inf同一级目录)
如果有一点web开发功底,想信上边的代码并不难理解。
Test.java(该文件位于test包下面)
将其发布到tomcat下面,然后在浏览器中输入:http://localhost:8080/zktest/即可测试该功能。
现在jsp和zk页的整合还没有研究出来,希望有过这方面开发经验的大虾指点一二,可以用邮箱和我联系。
欢迎转载,有问题请联系我:txyhl@126.com
首先,为了让大家对其有一个感性的认识,就先去看看它的demo,相信你也会被它华美的外表所吸引

demo: http://www.potix.com/zkdemo/userguide/
OK,ZK学习之路开始了。
当然,要先去下载ZK,推荐网站:http://www.zkoss.org
需要下载 :zk-2.3.0.zip,现在的最高版本
如果有兴趣,也可以下载 zk-demo-2.3.0.zip,里面有它的各种应用示例。
新建一个WEB工程,工程名为:zktest
然后将zk-2.3.0/dist/lib,zk-2.3.0/dist/lib/ext,zk-2.3.0/dist/lib/zkforge目录下面的jar包引入到工程中(怎么引入我不用说了吧)
然后就开始写程序了......
web.xml
<?
xml version="1.0" encoding="UTF-8"
?>
< web-app version ="2.4"
xmlns ="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation ="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" >
< 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 >
< filter >
< filter-name > zkFilter </ filter-name >
< filter-class > org.zkoss.zk.ui.http.DHtmlLayoutFilter </ filter-class >
< init-param >
< param-name > extension </ param-name >
< param-value > html </ param-value > <!-- Use XHTML components as default. -->
</ init-param >
</ filter >
< filter-mapping >
< filter-name > zkFilter </ filter-name >
< url-pattern > *.jsp </ url-pattern >
< dispatcher > REQUEST </ dispatcher >
< dispatcher > INCLUDE </ dispatcher >
< dispatcher > FORWARD </ dispatcher >
< dispatcher > ERROR </ dispatcher >
</ filter-mapping >
< 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-list >
</ web-app >
< web-app version ="2.4"
xmlns ="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation ="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" >
< 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 >
< filter >
< filter-name > zkFilter </ filter-name >
< filter-class > org.zkoss.zk.ui.http.DHtmlLayoutFilter </ filter-class >
< init-param >
< param-name > extension </ param-name >
< param-value > html </ param-value > <!-- Use XHTML components as default. -->
</ init-param >
</ filter >
< filter-mapping >
< filter-name > zkFilter </ filter-name >
< url-pattern > *.jsp </ url-pattern >
< dispatcher > REQUEST </ dispatcher >
< dispatcher > INCLUDE </ dispatcher >
< dispatcher > FORWARD </ dispatcher >
< dispatcher > ERROR </ dispatcher >
</ filter-mapping >
< 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-list >
</ web-app >
index.zul(该文件同web-inf同一级目录)
<
window
title
="yhltest demo"
border
="normal"
>
< zscript > {
//引入Test类
import test.*;
void submit() {
Test test = new Test();
//调用Test类的方法getTestStr,并将返回值赋给mylabel
mylabel.value=test.getTestStr(text1.value);
}
} </ zscript >
< grid >
< rows >
< row >< label id ="mylabel" value ="test" /></ row >
//输入1 或 2
< row > input(1or2) < textbox id ="text1" /></ row >
//提交,调用函数submit
< row >< button label ="submit" onClick ="submit()" /></ row >
</ rows >
</ grid >
</ window >
< zscript > {
//引入Test类
import test.*;
void submit() {
Test test = new Test();
//调用Test类的方法getTestStr,并将返回值赋给mylabel
mylabel.value=test.getTestStr(text1.value);
}
} </ zscript >
< grid >
< rows >
< row >< label id ="mylabel" value ="test" /></ row >
//输入1 或 2
< row > input(1or2) < textbox id ="text1" /></ row >
//提交,调用函数submit
< row >< button label ="submit" onClick ="submit()" /></ row >
</ rows >
</ grid >
</ window >
如果有一点web开发功底,想信上边的代码并不难理解。
Test.java(该文件位于test包下面)
package
test;
public class Test {
public String getTestStr(String flag)
{
if (flag.equals( " 1 " ))
{
return this .getTestStr1();
} else if (flag.equals( " 2 " ))
{
return this .getTestStr2();
} else
{
return " 请输入正确的参数 " ;
}
}
public String getTestStr1()
{
return " 调用类Test的getTestStr1方法 " ;
}
public String getTestStr2()
{
return " 调用类Test的getTestStr2方法 " ;
}
}
public class Test {
public String getTestStr(String flag)
{
if (flag.equals( " 1 " ))
{
return this .getTestStr1();
} else if (flag.equals( " 2 " ))
{
return this .getTestStr2();
} else
{
return " 请输入正确的参数 " ;
}
}
public String getTestStr1()
{
return " 调用类Test的getTestStr1方法 " ;
}
public String getTestStr2()
{
return " 调用类Test的getTestStr2方法 " ;
}
}
编写工作到此完成。
将其发布到tomcat下面,然后在浏览器中输入:http://localhost:8080/zktest/即可测试该功能。
现在jsp和zk页的整合还没有研究出来,希望有过这方面开发经验的大虾指点一二,可以用邮箱和我联系。