jsp中,String转ArrayList报错

<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="utf-8" %>
<%
    ArrayList usersList=(ArrayList)application.getAttribute("usersList");
    if(usersList==null){
        usersList=new ArrayList();
        application.setAttribute("users",usersList);
    }
    out.println("在线用户:<br>");
    for(int i=0;i<usersList.size();i++){
        out.println(usersList.get(i)+"<br>");
    }
%>

报错信息


之前是可以转化的,不知道为什么不行了。大神帮帮忙,小弟先谢过。

阅读 4.6k
3 个回答

我自己来回答吧。String是不能强转ArrayList的。我之前的理解有问题。
问题错的很隐蔽


我起初写的代码中错误的将String类型存入,导致报错。即使改为将ArrayList存入,还是报错,所以报错是String转ArrayList。原因很无语,因为检查代码是ArrayList的,所以一直以来没错。原因是没有application.removeAttribute(usersList);导致之前存入的String类型一直被获取,所以报错。remove之后就正常了。


最后谢谢给我灵感的回答者们。

把传递过来的数据打印下先看看,是不是传递的数据有问题。

application.getAttribute("usersList"),你这里面存的是个字符串。不是存的ArrayList,查一下存的地方是不是存错了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题