JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » AJAX討論區 » ZK  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to topicthreaded modego to previous topicgo to next topic
己加入精華區
by kebin_liu at 2006-10-10 17:23
本主題所含的標籤
無標籤
作者 ZK 入門與應用(二) [精華]
CMHuang

妳喜歡我的大象嗎?(羞)

版主

發文: 81
積分: 4
於 2006-10-10 00:15 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
前略......

ZK 基礎設定請見 簡介 ZK - Ajax but no Javascript
這篇是 ZK 入門與應用(一) 的續集 Big Smile

這一篇教學是改自良葛格 DWR 入門與應用(二) 的構想。(對不起,我太沒創意了! Dead

我們先看畫面:


假設我們有一個資料庫:


我們希望先透過第一個 ListBox 選擇 unit 之後,再帶出第二個 ListBox 的 school。
這應該是一個滿常見的功能。

我們有一個向資料庫取得資料的 class。
這邊我們簡化資料庫連線的部份,用 TreeMap 模擬。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import java.util.Map;
import java.util.TreeMap;
 
public class dummy {
  private Map<String, String[]> schools;
 
  public dummy() {
    schools = new TreeMap<String, String[]>();
    schools.put("大專院校", new String[] { "輔仁大學", "東吳大學", "東海大學", "文化大學",
        "淡江大學", "逢甲大學" });
    schools.put("高中高職", new String[] { "文生高中", "揚子高中", "義峰高中", "仁義高中" });
  }
 
  public String[] getUnit() {
    String[] keys = new String[schools.size()];
    int i = 0;
    for (String key : schools.keySet()) {
      keys[i++] = key;
    }
    return keys;
  }
 
  public String[] getSchool(String unit) {
    return schools.get(unit);
  }
}

我們有兩種單位:「大專院校」及「高中高職」。
不同的單位有不同的學校。

前端的 zul 如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?xml version="1.0" encoding="UTF-8"?>
<zk>
  <zscript>
    dummy my_dummy = new dummy(); 
    String[] units = my_dummy.getUnit(); 
    String[] schools = my_dummy.getSchool(units[0]);
 
    void unit_selected() 
    { 
      schools = my_dummy.getSchool(unit.getSelectedItem().getLabel());
      school.getItems().clear(); 
      for(String str: schools) 
      {
        school.appendItem(str, str); 
      } 
    }
  </zscript>
  
  <label value="單位:" />
  <listbox id="unit" rows="1" mold="select" onSelect="unit_selected()">
    <listitem label="${each}" forEach="${units}" />
  </listbox>  
  <separator />  
  <label value="學校:" />
  <listbox id="school" rows="1" mold="select">
    <listitem label="${each}" forEach="${schools}" />
  </listbox>
</zk>

當使用者選擇 unit 之後會觸發 ListBox 的 onSelect 事件。
這時動態將選擇單位的學校加入 school 的 ListBox 中。
大家可以注意到 ZK 支援 EL expression。
所以我們可以用 EL 的 foreach 來將預設值帶出。

這次的範例是不是很簡單啊?
我們下次再見嚕! Big Smile

zk_intro2.zip (0.9k)


CMHuang edited on 2006-10-12 16:34
reply to postreply to post
作者 Re:ZK 入門與應用(二) [Re:CMHuang]
blueaway





發文: 8
積分: 0
於 2006-11-06 14:52 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
想请问下 在zkscript中直接写dummy my_dummy = new dummy(); 就可以么?
不需要指出dummy.java文件的位置而zk可以自动识别调用么?


reply to postreply to post
作者 Re:ZK 入門與應用(二) [Re:blueaway]
CMHuang

妳喜歡我的大象嗎?(羞)

版主

發文: 81
積分: 4
於 2006-11-06 23:11 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
blueaway wrote:
想请问下 在zkscript中直接写dummy my_dummy = new dummy(); 就可以么?
不需要指出dummy.java文件的位置而zk可以自动识别调用么?


只要確定 dummy.class 在 tomcat 的 class path 裡面就可以了。


CMHuang edited on 2006-11-06 23:14
reply to postreply to post
作者 Re:ZK 入門與應用(二) [Re:CMHuang]
yz79845





發文: 2
積分: 0
於 2006-12-09 11:04 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
請問,我設置了包路徑,要調用不同包裏面的class如何處理?

reply to postreply to post
作者 Re:ZK 入門與應用(二) [Re:CMHuang]
more1031





發文: 7
積分: 0
於 2013-08-28 13:40 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
為什麼JBOSS就沒辨法做到呢

reply to postreply to post
» JWorld@TW »  AJAX討論區 » ZK

reply to topicthreaded modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8