Como posso acessar variáveis enviadas na solicitação via jQuery?
-
26-09-2019 - |
Pergunta
Estou usando suportes. O My ActionForm possui um ArrayList configurado dentro dela, como posso acessar a matriz do JSP para a qual o ActionForm é enviado pelo controlador no jQuery em um botão Clique. Isso é para que eu possa percorrer os elementos dessa matriz. Eu acho que é algo assim, mas isso é uma facada no escuro (o que não está funcionando).
$('myButton').click(function(){
var myArrayToLoopThrough = $('myForm.myArray');
for(){
//looping stuff
}
}
Solução
O JQuery opera no HTML gerado pelo seu JSP.
Portanto, dê uma olhada no HTML gerado no navegador usando uma ferramenta como o Firebug para o Firefox.
Em seguida, você pode usar o jQuery para selecionar e iterar sobre os elementos HTML. Aqui estão a sintaxe básica das coisas mais úteis:
Selecione um ID: $("#id")
Selecione por classe: $(".class")
Selecione por tag html: $("p")
ou $("span")
Itera sobre uma seleção
$(...something...).each(function(){
// this is the DOM element
// $(this) is a jQuery object containing the DOM element
});
Documentação JQuery Oficial sobre Seletores
EDITAR
Com base em seus comentários, você parece estar procurando uma maneira de se comunicar com objetos do servidor em vez de HTML gerado.
O JavaScript (JQuery está escrito em JavaScript) é um idioma do navegador da Web que só pode interagir com o HTML gerado. Seus objetos Java não são enviados para o navegador.
Se você precisar recuperar dados do servidor, precisará de uma nova solicitação HTTP para recuperar esses dados. Isso pode ser feito no jQuery usando o Métodos Ajax.
Outras dicas
Você pode querer conferir .serializeArray()
. Você pode obter todos os dados do formulário em um bom objeto para poder fazer o que deseja com os dados.
documentação jQuery .SerializeArray ()
var data = $('#form-id').serializeArray();
Agora você pode fazer um loop data
. As chaves são name
e value
.
É isso que você está procurando?
$('.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 );
}
});