私はDBの内容を示すと、私はこのエラーが生じていますに問題がある:MySQLのJavaの例外:IndexOutOfBoundsException
org.apache.jasper.JasperException: java.lang.IndexOutOfBoundsException: Index: 2, Size: 2
は、誰かが私はこの問題を解決する手助けすることはできますか?私は私のJSPページで動作しますが、この特定のクエリは例外を持っているようだ別のクエリを持っている:
select epi.firstName, epi.lastName, esi.license
from `employee-personal-information` epi
join`employee-safeguard-information` esi
on epi.employeeID = esi.employeeID
join oic oic
on esi.employeeID = oic.oicID;
これは私のDAOコードです:
public ArrayList<Employee> viewOIC() {
ArrayList<Employee> newEmployee = new ArrayList<Employee>();
try {
DBConnectionFactory myFactory = DBConnectionFactory.getInstance();
Connection conn = myFactory.getConnection();
PreparedStatement pstmt = conn.prepareStatement("select epi.firstName, epi.lastName, esi.license\n" + "from `employee-personal-information` epi join`employee-safeguard-information` esi on epi.employeeID = esi.employeeID\n" + " join oic oic on esi.employeeID = oic.oicID\n" + ";");
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
Employee tempRI = new Employee();
tempRI.setFirstName(rs.getString("firstName"));
tempRI.setLastName(rs.getString("lastName"));
tempRI.setLicense(rs.getString("license"));
newEmployee.add(tempRI);
}
pstmt.close();
conn.close();
return newEmployee;
} catch (SQLException ex) {
Logger.getLogger(EmployeeDAO.class.getName()).log(Level.SEVERE, null, ex);
}
return null;
}
私はこの問題を解決する助けてください。どんな助けもありがとう!ありがとうございました!
私のJSPコード:
<% EmployeeDAO employeeDAO = new EmployeeDAO();
ArrayList<Employee> employeeList = employeeDAO.viewEmployee();%>
<div class="form-bottom">
<form action="addTicket" method="post" class="complaint-form">
<div class="form-group">
Involved Guard:
<select name="form-guardInvolved" id="form-guardInvolved" onfocus="emptyElement('status')">
<% for (int i = 0; i < employeeList.size(); i++) {%>
<option value="<%=employeeDAO.viewEmployee().get(i).getFirstName() + " "%>
<%=employeeDAO.viewEmployee().get(i).getLastName()%>"> <%=employeeDAO.viewEmployee().get(i).getFirstName() + " "%>
<%=employeeDAO.viewEmployee().get(i).getLastName()%> </option>
<% }%>
</select>
<p> </p>
</div>
<div class="form-group">
Reported By:
<select name="form-reportedBy" id="form-reportedBy" onfocus="emptyElement('status')">
<% for (int i = 0; i < employeeList.size(); i++) {%>
<option value="<%=employeeDAO.viewOIC().get(i).getFirstName() + " "%>
<%=employeeDAO.viewOIC().get(i).getLastName()%>"> <%=employeeDAO.viewOIC().get(i).getFirstName() + " "%>
<%=employeeDAO.viewOIC().get(i).getLastName()%> </option>
<% }%>
</select>
<p> </p>
</div>
最初の部分は動作しますが、エラーが第二の部分です。
例外スタックトレースを含めてください。 –
投稿されたコードにIOOB例外がスローされる可能性があります。 –
viewOIC()を呼び出すクラスで問題が発生している可能性が高いと思います。そのコードを追加することもできます。 – Jeutnarg