作者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)
→ lovelycateye:完蛋了,我忘光了 囧> 12/12 23:44
推 slalala:這些之前有寫過:D 題外話 效能問題的話 zul應該最後也是編 12/12 23:57
推 slalala:譯成servlet吧? 12/13 00:18
→ TonyQ:nope. zul 就是zul ,他會透過一隻parser 進行解譯. 12/13 00:29
→ TonyQ:zul基本上你可以看成spring 的bean config 只是一群定義檔 12/13 00:31
推 slalala:如果是這樣效能真的會差很多耶 12/13 00:47
→ TonyQ:高興的話寫 Richlet 也可以啦... 12/13 02:37
以zscript來講,以composer取代的確可以增加一定幅度的效能。
※ 編輯: TonyQ 來自: 220.133.44.37 (12/13 10:23)