题
我得到一个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
从一个servlet过去了,我的jsp给出NullPointerException
。
我想检查是否employees
和arr_size
是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外移动的逻辑,如果在所有可能的...
其他提示
他们只有我可以看到你没有检查又是你的员工数组中的元素。如果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
<% }} %>
,而不是为环路电流
不隶属于 StackOverflow