Jsp 为什么在将request.getAttribute转换为int后打印值会导致NullPointerException?

Jsp 为什么在将request.getAttribute转换为int后打印值会导致NullPointerException?,jsp,Jsp,为什么第二行抛出NullPointerException int age = (Integer)request.getAttribute("age"); out.println(age); 此语句中唯一可以为空的是out。因此,如果您在这一行得到一个NullPointerException,这意味着out为null。您以后执行该属性时可能不存在该属性。问题可能是处理顺序,而不是代码! 尝试以下ServletRequest方法: getAttributeNames() 返回一个枚举,其中包含可用

为什么第二行抛出NullPointerException

int age = (Integer)request.getAttribute("age");
out.println(age);

此语句中唯一可以为空的是
out
。因此,如果您在这一行得到一个NullPointerException,这意味着
out
为null。

您以后执行该属性时可能不存在该属性。问题可能是处理顺序,而不是代码! 尝试以下ServletRequest方法:

getAttributeNames() 返回一个枚举,其中包含可用于此请求的属性的名称


它第一次检索属性值,如果不检索,则意味着执行顺序有问题。您没有名为“age”的request属性

我怀疑,它是引发异常的第一行。实际上,第二行引发异常。我已经测试了我不认为out是空的。下面的代码运行良好。整数年龄=(整数)请求.getAttribute(“年龄”);out.println(年龄);那么引起异常的不是这一行。如果你发布堆栈跟踪,我们就可以知道而不是猜测。
out.println(age);