我在名为cartList的servlet中设置了一个session属性,这是一个像这样的字符串数组
request.getSession().setAttribute("cartList", items);
其中items是String类型的对象数组。
在jsp中,我正在调用上面的属性,
line123:String[] cartItems = (String[]) request.getSession().getAttribute("cartList");
line124:for (int i = 0; i < cartItems.length; i++) {
line125:String[] cartItem = cartItems[i].split("\\|");
cartItems [i]将永远不会为空,并且将包含这样的字符串,[AAA-000 | 2]。
我在第125行得到一个异常,这是一个nullpointerexception。我不知道为什么我会收到这个错误。我正在检查servlet中'items'的内容,它很好而不是空的。 我花了一整天时间试图解决这个问题。我的智慧结束了!任何帮助表示赞赏!
答案 0 :(得分:1)
问题不在于你没有从会话中获得cartItems
。问题是cartItems
的某些值包含null。在调用split()
之前,请打印cartItems[i]
的值以查看其携带的内容。
String[] cartItems = (String[]) request.getSession().getAttribute("cartList");
for (int i = 0; i < cartItems.length; i++) {
out.println("cartItems["+i+"]: "+cartItems[i]);
String[] cartItem = null;
if(cartItems[i]!=null)
cartItem = cartItems[i].split("\\|");
}
如果您看到某些值的null
,请返回您的servlet,并确保在将它们放入cartList
之前为它们分配一些值。