org.zkoss.zk.ui.UiException: Out of bound:

异常日志:

2009-8-19 15:38:19 org.zkoss.zk.ui.impl.UiEngineImpl handleError:1108 严重: >>org.zkoss.zk.ui.UiException: Out of bound: 8 while size=7 >> at org.zkoss.zul.Listbox.setSelectedIndex(Listbox.java:662) >> at sun.reflect.GeneratedMethodAccessor136.invoke(Unknown Source) >> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) >> at java.lang.reflect.Method.invoke(Method.java:585) >> at org.zkoss.lang.reflect.Fields.set(Fields.java:153) >> at org.zkoss.zkplus.databind.Binding.myLoadAttribute(Binding.java:316) >> at org.zkoss.zkplus.databind.Binding.loadAttribute(Binding.java:279) >> at org.zkoss.zkplus.databind.DataBinder$LoadOnSaveEventListener.loadAllBindings(DataBinder.java:1472) >>...

异常原因分析:

      ZK的UiException基本都出现在zul页面的元素错误,根据错误信息可以明显分析出是Listbox索引超出下标了.经过检查发现,两个Listbox同时绑定到一个数据上,而第一个Listbox组件拥有8个listitem,而第二个只有6个,当第一个listbox选中第7个时,就会发生索引越界.

解决方案:

      尽量不要多个组件绑定同一个数据.

你可能感兴趣的:(zk)