将 ArrayList 转换为常规字符串数组 [重复]
Posted
技术标签:
【中文标题】将 ArrayList 转换为常规字符串数组 [重复]【英文标题】:Cast ArrayList to regular String array [duplicate] 【发布时间】:2016-10-30 19:53:35 【问题描述】:我的项目有问题。 我有一个 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);
【问题讨论】:
您不能将 ArrayList您正在将 ArrayList 转换为 Array。您无法将 ArrayList 转换为 Array。
你需要替换: String[] names = (String[]) session.getAttribute("userlist"); 与 ArrayList list= (ArrayList)session.getAttribute("userlist");
现在迭代列表并从中获取数据。
【讨论】:
好的,我可以解决这个问题,但它仍然告诉我“null”。我不明白为什么? 请提供错误日志文件。如果它返回 null ,则表示该密钥(用户列表)的会话中没有存储任何内容。或者您正在尝试在会话中存储之前获取数据。以上是关于将 ArrayList 转换为常规字符串数组 [重复]的主要内容,如果未能解决你的问题,请参考以下文章