2010-11-18 26 views
0

J'utilise des entretoises. Mon ActionForm a un ArrayList mis en place à l'intérieur, comment puis-je accéder au tableau à partir de la JSP que l'ActionForm est envoyé par le contrôleur dans jQuery sur un clic de bouton. C'est ainsi que je peux faire une boucle sur les éléments de ce tableau. Je suppose que c'est quelque chose comme ça, mais c'est un coup de couteau dans le noir (qui ne fonctionne pas).Comment puis-je accéder aux variables envoyées dans la requête via jQuery?

$('myButton').click(function(){ 
    var myArrayToLoopThrough = $('myForm.myArray'); 
    for(){ 
     //looping stuff 
    } 
} 

Répondre

0

jQuery fonctionne sur le code HTML généré par votre JSP.

Alors jetez un oeil sur le code HTML généré dans le navigateur en utilisant un outil comme Firebug pour Firefox.

Ensuite, vous pouvez utiliser jQuery pour sélectionner et parcourir des éléments HTML. Voici la syntaxe de base des choses les plus utiles:

Sélectionnez un ID: $("#id")

Sélection par classe: $(".class")

Sélectionnez par tag HTML: $("p") ou $("span")

Itérer sur une sélection

$(...something...).each(function(){ 
    // this is the DOM element 
    // $(this) is a jQuery object containing the DOM element 
}); 

Official jQuery documentation on selectors


EDIT

Sur la base de vos commentaires, vous semblez être à la recherche d'un moyen de communiquer avec le serveur d'objets au lieu de HTML généré.

Javascript (jQuery est écrit en Javascript) est une langue de navigateur Web qui ne peut interagir qu'avec le code HTML généré. Vos objets Java ne sont pas envoyés au navigateur.

Si vous avez besoin de récupérer des données du serveur, vous avez besoin d'une nouvelle requête HTTP pour récupérer ces données. Cela peut être fait dans jQuery en utilisant le AJAX methods.

+0

Désolé. Mon tableau n'a pas d'ID pour y accéder. Juste un getter de l'objet qui le détient. Comment puis-je accéder au getter? Serait-ce quelque chose comme: var array = $ ('myForm.getArray() '); – edwardmlyte

+0

On dirait que vous voulez var tableau = $ (this) .closest ('formulaire'). SerializeArray() –

+0

Non ce n'est pas l'objet formulaire HTML auquel je veux accéder. C'est le formulaire Struts auquel je veux accéder. Je pense que ma requête initiale était trompeuse désolé. – edwardmlyte

0

Vous pouvez vérifier .serializeArray(). Vous pouvez obtenir toutes les données du formulaire dans un bel objet afin que vous puissiez faire ce que vous voulez avec les données.

jQuery .serializeArray() Documentation

var data = $('#form-id').serializeArray(); 

Maintenant vous pouvez boucle à travers data. Les clés sont name et value.

0

Est-ce ce que vous cherchez?

$('.myButton').click(function(e) { 
    var data = $(this).closest('form').serializeArray(); 
    for(var i = 0; i < data.length; i++) { 
     var field = data[i]; 
     console.log(field.name + '=>' + field.value); 
    } 
}); 
0
+0

Non. Je pense que ma question était mal formulée. Je n'ai pas besoin d'accéder au formulaire HTML. Avec des entretoises, vous avez une action et une forme. Le formulaire est juste un haricot avec des getters et des setters. Je veux accéder aux getters pour ce formulaire, pas le HTML sur le jsp. – edwardmlyte