前言:用了一段时间的zk,用它做了一个不大的项目,对它也有了一个初步的了解,可感觉一些高级的特性还是没用到也不够了解.所以如果有不对的地方,希望各位高手对指正,总结的也比较乱.总之还是希望对大家有所帮助!
言归正传
--------------------------------------------------------------------------------------------------------------------------------
一. zk 与 eclipse 的整合
1. zk 下载地址
http://www.zkoss.org/download/zk.dsp
下载最新的 Demo 即可 . 如有需要可下载 doc 和 source
2. zk studio 下载地址 :
http://studioupdate.zkoss.org/studio/update
3. zk 需要的 jar
先安装 zk studio, 然后将 zkdemo 解压缩 , 将 ../zk-bin-3.5.2/dist/lib 下的所有包添加到你的 web 项目里即可 .
注 : zkforge 文件夹下的 jar 属于辅助组件 , 如不需要也可不添加 .
二. zk 基础的总结
1. zul 文件
zk 用 zul 文件代替传统的 html,jsp 等 , 当然 zk 也有 zuml 和 dsp 等 , 我还怎么接触 .
2. Desktop, Page 和 Component ( 桌面 , 页面和组件 )
Component 就是 Ui 对象 , 如 grid,listbox,tree,gmap 等
Page 就是一些列 component 的集合 . 当 ZK loader 加载完一个 zuml 页面时自动创建 .
Desktop, 一个 ZUML 可以直接或间接包含另外一个 ZUML 页面。由于这些页面是为服务同样的 URL 请求而创建的,它们被统称为桌面 ( org.zkoss.zk.ui.Desktop
) 。换句话说,桌面是页面的集合,这些 页面服务于同样的 URL 请求
3. zscript 元素
zk 的脚本语言 . 可以在 zscript 中写不同语言的脚本 .( 通过设置 language 属性 ). 默认为 java 的 . 也可以在 zscript 中直接定义 java 类 .
- <zscript language="java">
- <![CDATA[
- ]]>
- </zscript>
- 注: zscript 元素里不能直接alert或System.out,也不可以写El表达式,也不支持Java泛型(至少我写报错)
- 也可以使用特定的前缀指定某种语言,例如:
- <button onClick="javascript: do_something_in_js();"/>
<zscript language="java">
<![CDATA[
]]>
</zscript>
注: zscript 元素里不能直接alert或System.out,也不可以写El表达式,也不支持Java泛型(至少我写报错)
也可以使用特定的前缀指定某种语言,例如:
<button onClick="javascript: do_something_in_js();"/>
但是我引JavaScript都是用下面这种方法:
- <script src="/js/jquery.js" type="text/javascript"/>
- <window title="index" border="normal" id="win1" >
- <label value="Name:"/><textbox id="name" action="onclick:xx()"/>
- <html><![CDATA[
- <input type="text" value="aaa" id="ax1"/><input type="button" value="ni达到">
- <script type="text/javascript">
- function xx(){
- alert($("#ax1").val()+'-${win1.title}-${name.text}')
- }
- </script>
- ]]></html>
<script src="/js/jquery.js" type="text/javascript"/>
<window title="index" border="normal" id="win1" >
<label value="Name:"/><textbox id="name" action="onclick:xx()"/>
<html><![CDATA[
<input type="text" value="aaa" id="ax1"/><input type="button" value="ni达到">
<script type="text/javascript">
function xx(){
alert($("#ax1").val()+'-${win1.title}-${name.text}')
}
</script>
]]></html>
以上代码,我把jquery也引了进来,可以看出zk跟jquery语法不会冲突.