读取ELSE语句时JSP抛出500错误

时间:2017-05-24 01:42:31

标签: jsp if-statement java-ee

如果我的数组中有项目,for循环执行正常,但如果它是空的并转到else,我得到一个空指针HTTP 500错误...我做错了什么?

<% out.print("<ul>");

         if(p.getToppings().length != 0) {    
        for (int x = 0; x < p.getToppings().length; x++) { 
        out.print("<li>");
            out.print(p.getToppings()[x]); 
            out.print("<br>");


        out.print("</li>");

        }

        } else {
        out.print("No Toppings"); 
        } %>

org.apache.jasper.JasperException:在第18行处理JSP页面/test2DisplayOrder.jsp时发生异常

15:&lt;%model.PizzaOrder p =(model.PizzaOrder)request.getAttribute(&#34; p&#34;); %GT; 16:

Hello

&lt;%out.print(p.getName()); %GT; 17:
18:&lt;%out.print(p.getPhone()+&#34; Total $&#34; + p.getPrice()); %GT; 19:
20:
21:

2 个答案:

答案 0 :(得分:0)

您应该更改以下行:

    if(p.getToppings().length != 0)

为:

    if(p != null && p.getToppings() != null && p.getToppings().length != 0)

答案 1 :(得分:0)

我必须重新调整我的模型类,以便在计算价格之前测试getToppings()数组是否为null或空?因此第18行的例外。