我遇到了一个错误,我无法将传入变量强制转换为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?有这个原因吗?
答案 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 - 但这不会回答你的确切问题,只是引导你走向更好(可维护)的代码。