作者TonyQ (沉默是金。)
看板java
标题Re: [J2EE] ZK怎麽用java.util.TreeMap
时间Sun Dec 12 18:29:23 2010
来写篇延伸阅读好了,讲一下什麽是 zscript ,
这家伙看起来好像只能 support 1.4 syntax 限制很多;
但事实上,zscript/beanshell 在zk 扮演一个蛮重要的角色。
zscript 的真正本质我们之後再讲,先讲怎麽用 zscript 。
-----------------------------------------------------
一般而言,我们所谓的 zscript ,一开始刚进入 zk 世界的玩家,
会注意到的 zscript 会是在 zul 中的 <zscript> tag。
(至於什麽是 zul 请参考
#1CgVo5YY (java) [J2EE] 闲聊 zk 导论 1 )
以一个简单的 zul 列出表格的实作来看,
-----------------------------------------------------
<zk>
<zscript>
ListModelList models= new ListModelList();
models.add("1");
models.add("2");
models.add("3");
models.add("4");
models.add("5");
</zscript>
<listbox id="list" model="${models}">
<listhead>
<listheader label="item list" sort="auto"/>
</listhead>
</listbox>
</zk>
-----------------------------------------------------
这里有一点需要说明,
default 当你没有设定 listbox 要怎麽产生内容(ItemRender),
他就会以每一行印出对应 model 中的 toString 的方式印出 Listbox内容。
就像这个影片示范的这样
http://goo.gl/Wufub
如果没有 zscript , 这样简单的功能我们就必须写一个zul ,
一个 java composer class , 才能够作到 .
关於 zscript 的初步介绍到这里就好了;
再来要讨论 zscript 怎麽实做的。
首先 zscript 是主要依赖於 beanshell (
http://www.beanshell.org/ ),
他给我的感觉有点像是 groovy ,语法限制比标准 java宽松了一些,
也比较不在乎型态,而且他是可以 interactive 的逐行执行。
对他的语法灵活度有兴趣的人可以参考
http://www.beanshell.org/manual/quickstart.html
-----------------------------------------------------
zscript 是 zul 之所以可以 fast prototyping 一个很重要的工具,
虽然因为要解析所以他的效率是差很多的,
但是对於要快速建构出一个能用跟能测试的范本, zscript 是功不可没的。
另外 zscript 还有一个常见的变形,就是关於event handling 的部份。
<button label="clickme" onClick=
"alert(event.target);" />
标色的这一段,也是个 zscript ,虽然这非常合理,
不过没人提的话,通常是不太有人会注意到的,
想想看如果没有 zscript,写写小功能的zul会有多麻烦。:P
先写到这吧,zscript 其实还有一些有趣的应用,
比方说在zscript 定义函式让 event handler 调用,
像是这样的例子。
<zk>
<zscript>
public void sayHi(){
alert("hi");
}
</zscript>
<button label="clickme" onClick=
"sayHi()" />
</zk>
--
今天的介绍到这里~咱们下期再会
--
I am a person, and I am always thinking .
Thinking in love , Thinking in life ,
Thinking in why , Thinking in worth.
I can't believe any of what ,
I am just thinking then thinking ,
but worst of all , most of mine is thinking not actioning...
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 111.83.16.11
※ 编辑: TonyQ 来自: 111.83.16.11 (12/12 18:52)
1F:→ lovelycateye:完蛋了,我忘光了 囧> 12/12 23:44
2F:推 slalala:这些之前有写过:D 题外话 效能问题的话 zul应该最後也是编 12/12 23:57
3F:推 slalala:译成servlet吧? 12/13 00:18
4F:→ TonyQ:nope. zul 就是zul ,他会透过一只parser 进行解译. 12/13 00:29
5F:→ TonyQ:zul基本上你可以看成spring 的bean config 只是一群定义档 12/13 00:31
6F:推 slalala:如果是这样效能真的会差很多耶 12/13 00:47
7F:→ TonyQ:高兴的话写 Richlet 也可以啦... 12/13 02:37
以zscript来讲,以composer取代的确可以增加一定幅度的效能。
※ 编辑: TonyQ 来自: 220.133.44.37 (12/13 10:23)