zk框架之desktop、page、component

page是component的集合,只有添加到page中的component对于client才是可用的,显然如果把他们从page中移除之后,他们就是不可见的。

desktop是page的集合,比如说我们创建了一个index.zul页面,在这个页面,包含了两个zul,分别是booklist.zul和cart.zul,当用户点击某个按钮发送请求的时候,desktop就发挥作用了,它相当于一个独立的request。每当一个独立的请求发送到服务器端的时候,随之而发送的就是响应的desktop

 

我们直到component只有关联到page才是可见的,将component关联到page有两种方式:

 

(1)通过window来append component

 

Window window = new Window();

window.setTitle("hello world");

window.setBorder("normal");

Button button = new Button();

button.setLabel("say Hello");

window.appendChild(button);

 

(2)通过component来set parent

 

Window window = new Window();

window.setTitle("hello world");

window.setBorder("normal");

Button button = new Button();

button.setLabel("say Hello");

button.setParent(window);

 

如果要从page中删除一个component,有下面三种情况:

(1)如果是root component,可以用setPage(null);

(2)如果不是root component,可以用setParent(null);

(3)detach()方法直接删除不管它是不是root component。

 

另外需要补充的两点:一、不要把component存放在static field中;二、component.clone()会把自身和子孙都复制过来,而且复制过来的没有parent,如果需要的话需要手工指定,但是其id space是保留的。

你可能感兴趣的:(框架,zk)