不能在JSP中使用“for”循环

时间:2016-05-19 11:36:41

标签: java jsp

我遇到了一个错误,我无法将传入变量强制转换为int。将其更改为Integer,并告知:它现在正在运作。我尝试使用该变量创建一个for循环(仅用于测试目的),它开始抛出数百个错误,其中一些错误NullPointerException

检查代码:

<%

    Integer number = (Integer)request.getAttribute("num");
    System.out.println(number);

    for(int i=0;i<number;i++){  
    System.out.println(i);
    }

%>

在一开始,我试图复制一些<p>,所以我可以看到它的工作原理(我将变量从同一个视图传递给控制器​​,然后将其恢复到此处)。如果我对for进行评论,则会在System.out.println

中显示正确的结果

如果我在for循环的条件运算符中放置一个静态值(如5左右),这也不起作用。

为什么我不能在view.jsp中使用for?有这个原因吗?

2 个答案:

答案 0 :(得分:0)

<强>问题:

此处的问题是您使用的是System.out.println()

<强>解释

如果要在JSP页面中打印结果,则应使用:

out.println(i);

因为如果你写System.out.println(i);,结果将被打印到控制台。

答案 1 :(得分:0)

您发布的代码中唯一可以获取null个对象的地方是

Integer number = (Integer)request.getAttribute("num");

如果您的请求没有设置此属性,则应该不执行任何操作,例如:将其余代码包装在if(number == null) { ... }块中或明确初始化,例如if(number == null) number = 0;

然而,在JSP中没有任何脚本块是最优雅的 - 而是使用taglib和EL - 但这不会回答你的确切问题,只是引导你走向更好(可维护)的代码。