Re: [J2EE] ZK怎麼用java.util.TreeMap
來寫篇延伸閱讀好了,講一下什麼是 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)
→
12/12 23:44, , 1F
12/12 23:44, 1F
推
12/12 23:57, , 2F
12/12 23:57, 2F
推
12/13 00:18, , 3F
12/13 00:18, 3F
→
12/13 00:29, , 4F
12/13 00:29, 4F
→
12/13 00:31, , 5F
12/13 00:31, 5F
推
12/13 00:47, , 6F
12/13 00:47, 6F
→
12/13 02:37, , 7F
12/13 02:37, 7F
以zscript來講,以composer取代的確可以增加一定幅度的效能。
※ 編輯: TonyQ 來自: 220.133.44.37 (12/13 10:23)
討論串 (同標題文章)