我得到的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>
<%}%>
从plet传递 arr
数组和arr_size
,jsp给出NullPointerException
。
我尝试检查employees
和arr_size
是否为null
,但不会改变任何内容。
感谢。
答案 0 :(得分:3)
即使数组本身不为null,employees[i]
很可能为空 - 导致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之外移动逻辑......
答案 1 :(得分:0)
他们只能看到你尚未检查的东西是你的雇员阵列的元素。如果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循环