Jsp java.lang.IndexOutOfBoundsException:索引:1,大小:1

Jsp java.lang.IndexOutOfBoundsException:索引:1,大小:1,jsp,Jsp,我试图通过制作数组列表从数据库的下拉列表中获取一些值,但当数据库中只有一行时,它会给出以下错误消息 java.lang.IndexOutOfBoundsException: Index: 1, Size: 1 我在jsp页面中的代码是: <% List<MedicalModel> SpecialityList= (ArrayList<MedicalModel>)request.getAttribute("speciality"); %> <sele

我试图通过制作数组列表从数据库的下拉列表中获取一些值,但当数据库中只有一行时,它会给出以下错误消息

java.lang.IndexOutOfBoundsException: Index: 1, Size: 1  
我在jsp页面中的代码是:

<% List<MedicalModel> SpecialityList= (ArrayList<MedicalModel>)request.getAttribute("speciality"); %>
<select name="SelectedDiagnosisID">
<% 
    for( int i=0; i<SpecialityList.size(); i++){   
%>
<option value ="<%=(SpecialityList.get(i).getDiagnosisID())%>"><%=(SpecialityList.get(i).getSpeciality())%></option>

<%}%>
</select>

与问题无关,但当调用request.getAttributespeciality时,如果该名称的请求属性中没有实际设置,则该属性可能返回null。因此,在使用之前需要检查null。SpecialityList上的运算符:

但是您的for外观看起来还可以,因为使用这个for循环,如果您的数组的大小为1,那么您最终只会尝试访问0处的索引,因此您不应该获得IndexOutOfBoundsException,除非您在创建数组并在请求属性中设置它的servlet中甚至没有在数组中放置一个项。因此,问题可能在于如何将值放入数组中

if(SpecialityList!=null)
{
   for(int i=0; i<SpecialityList.size(); i++)
   { 
       ...
   }
}