在jsp中读取会话属性

时间:2011-04-10 06:04:59

标签: jsp session-variables

我在名为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'的内容,它很好而不是空的。 我花了一整天时间试图解决这个问题。我的智慧结束了!任何帮助表示赞赏!

1 个答案:

答案 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之前为它们分配一些值。