通过复选框在数组中添加系统函数对象时,我一直收到此java.lang.indexoutofboundsexception错误:
SEVERE: Servlet.service() for servlet spis threw exception
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.rangeCheck(ArrayList.java:604)
at java.util.ArrayList.get(ArrayList.java:382)
at com.spis.dao.impl.CodesValueDaoImpl.getDescription(CodesValueDaoImpl.java:95)
at com.spis.bo.impl.CodesValueBoImpl.getDescription(CodesValueBoImpl.java:103)
at com.spis.controller.SystemUserController.viewPaged(SystemUserController.java:408)
at com.spis.controller.SystemUserController.systemUser(SystemUserController.java:48)
以下是systemFunctions:每当我向用户添加systemFunction时,它都会显示错误或者数据库中的systemFunction colummn为null。但是当我在数据库中设置systemFunction =“”时,页面显示正确,但显然没有systemFunctions数组..
String[] systemFunctions=(String[])request.getParameterValues("systemFunctions");
String appendedSysFunctions ="";
//Append system functions
if(systemFunctions!=null){
for(int i=0;i<systemFunctions.length;i++){
if(i==(systemFunctions.length-1)){
appendedSysFunctions+=systemFunctions[i];
}
else{
appendedSysFunctions+=systemFunctions[i] + ",";
}
}
}
另一个代码:
StringTokenizer st = new StringTokenizer(su.getAllowedSysFunc(), ",");
while (st.hasMoreTokens()){
appendedSystemFunc = appendedSystemFunc + codesValueMethods.getDescription
(3, st.nextToken());
if(st.hasMoreTokens()){
appendedSystemFunc = appendedSystemFunc + ", \n";
}
}
答案 0 :(得分:-1)
您必须检查systemFunctions
是否为空以及其长度是否大于0:
if(systemFunctions!=null && systemFunctions.length>0){
...
}