将ArrayList转换为常规String数组

时间:2016-06-28 13:02:37

标签: java arrays arraylist classcastexception

我的项目中存在问题。 我有一个JSP页面和一个Java servlet。 servlet必须使用session.setAttribute()在会话中保存名称列表。在JSP页面上必须使用session.getAttribute()从会话中读取并使用for循环从列表中打印出所有名称。所以当前的问题是我不知道如何将Obect / ArrayList转换为常规的String数组。 我知道有更好的方法可以做到这一点,但我必须这样做。

这是我的代码

的Servlet

private ArrayList<String> userlist = new ArrayList<String>(Arrays.asList("bla1","bla2","bla3","bla4")); // unsynchronisiert

public void addName(String name){
    userlist.add(name);
}   

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    addName(request.getParameter("username"));
    System.out.println(userlist);
    HttpSession session = request.getSession();
    session.setAttribute("userlist", userlist);
}

JSP:

String[] names = (String[]) session.getAttribute("userlist");
System.out.println(names);

1 个答案:

答案 0 :(得分:0)

您正在将ArrayList转换为Array.you无法将ArrayList转换为Array。

您需要替换:
String [] names =(String [])session.getAttribute(“userlist”);

    ArrayList list =(ArrayList)session.getAttribute(“userlist”);

现在迭代列表并从中获取数据。