문제

나는 점점 NullPointerException 내가 감당할 수 없었던 일.저는 Java 초보자이므로 도움을 주시면 감사하겠습니다.

<%
Employee employees[] = (Employee []) request.getAttribute("arr");
Integer arr_size= (Integer) request.getAttribute("arr_size");
for(int i=0;i<employees.length;i++){ %>
<tr><td><b>.</b></td><td><%=employees[i].getName()%></td><td>
    <%=employees[i].getLname()%></td><td><%=employees[i].getType()%></td><td>
    <%=employees[i].getEmail()%></td><td><a href="">Edit Employee Details</a></td>
</tr>
<%}%>

arr 배열과 arr_size 서블릿에서 전달되고 JSP는 NullPointerException.

혹시나 확인해봤는데 employees 그리고 arr_size ~이다 null 아니면 아무것도 바뀌지 않습니다.

감사해요.

도움이 되었습니까?

해결책

배열 자체가 null이 아니더라도 다음과 같은 일이 발생할 가능성이 높습니다. employees[i] null이 됩니다. NullPointerException.다음 요소를 건너뛰면 이를 방지할 수 있습니다.

for(int i=0;i<employees.length;i++) { 
    if (employees[i] == null) {
        continue;
    }
%>

그다지 우아하지는 않습니다.또한 Java 5로 컴파일하는 경우 향상된 for 루프를 사용하면 코드가 더 깔끔해집니다.

<%
Employee employees[] = (Employee []) request.getAttribute("arr");
for (Employee employee : employees) {
    if (employee == null) {
        continue;
    } %>
<tr><td><b>.</b></td><td><%=employee.getName()%></td><td>
    <%=employee.getLname()%></td><td><%=employee.getType()%></td><td>
    <%=employee.getEmail()%></td><td><a href="">Edit Employee Details</a></td>
</tr>
<%}%>

참고로 저는 무시했습니다 arr_size 당신은 그것을 사용하지 않는 것 같았습니다.무엇을 표현하려는 의도였나요?

마지막으로 가능하다면 논리를 JSP 외부로 옮기는 것이 좋습니다.

다른 팁

귀하가 아직 확인하지 않은 유일한 것은 직원 배열의 요소입니다.만약에 employees[i] ~이다 null 어느 시점에서든 이를 참조하면 NullPointerException.

이 시도:

for(int i=0;i<employees.length;i++){ 
  Employee e = employees[i];
  if (e != null) {%>
    //current code you have goes here
  <% }} %>

현재 for 루프 대신

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top