我尝试通过制作数据列表从数据库中获取一些值,但是当数据库中只有一行时,它会显示以下错误消息
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>
答案 0 :(得分:0)
与此问题无关,但是当您调用可能返回request.getAttribute("speciality")
的{{1}}时,如果实际上未在该名称的请求属性中设置该null
。因此,在.
上使用SpecialityList
运算符之前,您需要检查null:
if(SpecialityList!=null)
{
for(int i=0; i<SpecialityList.size(); i++)
{
...
}
}
但是你的for
外观看起来不错,因为使用这个for
循环,如果你的数组大小= 1,你最终只会尝试在0处访问索引,所以你不应该得到一个IndexOutOfBoundsException
,除非你以某种方式将一个项目放在你正在创建数组并在请求属性中设置它的servlet中的数组中。因此,问题可能在于如何将值放入数组中。