2010-07-04 4 views
1

Mon HTML ressemble à ceci:post jQuery() JSP retour de collection

<script type="text/javascript" src="jquery-1.4.2.js"></script> 
    <script type="text/javascript"> 
     $(document).ready(function(){ 
      $("#btn").click(function(){ 
       $.post("test.jsp", { "txt": $("#txt").val() }, 
       function(data){ 
        alert(data); 
        $("#res").html(data); 
       }); 
      }); 
     }); 

    </script> 

Il envoie la valeur du champ texte "txt" puis mon retourne JSP Liste:

<% 
String str=request.getParameter("txt"); 
List ls=new ArrayList(); 
ls.add(str+"1"); 
ls.add(str+"2"); 
ls.add(str+"3"); 
ls.add(str+"4"); 
out.print(ls); 
%> 

Ma question est de savoir comment Je peux obtenir les éléments de la liste un par un? Quelque chose comme .

Répondre

1

Vous devez renvoyer une chaîne JSON valide. Vous pouvez utiliser les bibliothèques Java format JSON ou simplement la chaîne à JSON valide (attention):

out.print('["'+str+'1", "'+str+'2"]'); 

Ensuite, la data variable dans votre rappel JavaScript serait quelque chose comme: ["txt1", "txt2"]. Ensuite, vous devez l'analyser pour en faire un objet JavaScript utilisable (je suggère d'ajouter le dataType 'json' à la méthode $ .post, il fait l'analyse pour vous). À ce stade, vous pouvez appeler le .