2016-06-28 9 views
0

Es gibt ein Problem in meinem Projekt. Ich habe eine JSP-Seite und ein Java-Servlet. Das Servlet muss eine Liste mit Namen in der Sitzung mit session.setAttribute() speichern. Auf der JSP-Seite muss aus der Session mit session.getAttribute() gelesen werden und alle Namen aus der Liste mit einer for-Schleife ausgedruckt werden. Das aktuelle Problem ist, ich weiß nicht, wie man die Obect/ArrayList in ein normales String-Array umwandelt. Ich weiß, es gibt viel bessere Möglichkeiten, dies zu tun, aber ich muss es so machen.Cast ArrayList zu regulären String-Array

Hier ist mein Code

Servlets:

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

Sie können eine ArrayList nicht in einen String [] umwandeln. Warum wirfst du es nicht auf ArrayList? Wenn Sie einen String [] benötigen, können Sie ihn über list.toArray (new String [list.size()]) analysieren. –

+0

okay, ich könnte das lösen, aber es sagt mir immer noch "null". Ich verstehe nicht warum? – WeSt

Antwort

0

Sie Arraylist Gießen in Array.you kippe Gussarraylist in Array.

Sie müssen ersetzen:
String [] Namen = (String []) session.getAttribute ("Benutzerliste");
mit
ArrayList-Liste = (ArrayList) session.getAttribute ("Benutzerliste");

und jetzt iterieren Liste und erhalten Daten von ihm.

+0

okay, ich könnte das lösen, aber es sagt mir immer noch "null". Ich verstehe nicht warum? – WeSt

+0

bitte Fehlerprotokolldatei angeben. Wenn es null zurückgibt, bedeutet dies, dass in der Sitzung für diesen Schlüssel (Benutzerliste) nichts gespeichert ist. Oder Sie versuchen, Daten vor dem Speichern in der Sitzung abzurufen. –