import java.util.ArrayList; import java.util.List; import org.zkoss.bind.annotation.BindingParam; import org.zkoss.bind.annotation.Command; import org.zkoss.bind.annotation.Init; import org.zkoss.bind.annotation.NotifyChange; import org.zkoss.zk.ui.Component; public class CollectionVM { List URL; List person; @Init public void init(){ URL = new ArrayList(); person = new ArrayList(); } @Command @NotifyChange("URL") public void addMore(){ if(URL != null && URL.size()>0){ URL.add(new URL()); }else{ URL = new ArrayList(); URL.add(new URL()); } } @Command @NotifyChange("URL") public void remove(@BindingParam("index") int index){ URL.remove(index); } @Command @NotifyChange("person") public void addMorePerson(){ if(person != null && person.size()>0){ person.add(new Person()); }else{ person = new ArrayList(); person.add(new Person()); } } @Command @NotifyChange("person") public void removePerson(@BindingParam("index") int index){ person.remove(index); } public List getURL() { return URL; } public void setURL(List uRL) { URL = uRL; } public List getPerson() { return person; } public void setPerson(List person) { this.person = person; } }