1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Passar um List para o controller (Vraptor)

Estou tentando enviar uma lista via ajax para o meu controller e estou tendo problemas. Inicialmente criei um array de objetos, o array estava sendo montado perfeitamente mas eu recebia null, no controller. Dando uma pesquisada encontrei algumas pessoas que conseguirão enviar por concatenação de string. Estou tentando fazer o mesmo e não obtenho sucesso. Porém a minha lista não vem null, agora ela tem o size 1, mas todas as propriedades estão nulas. Segue abaixo o controller e como estou montando o array:

Controller:

@Path("/extracaoInformacao/extrair") public void extrair(String texto, List objetivos) { ... }

JS: ao verificar o array objetivos com o console.log obtenho o seguinte resultado:

objetivos[0].id=1&objetivos[0].descricao=Local do crime&objetivos[0].conceitoCentral=crime&objetivos[1].id=2&objetivos[1].descricao=Tipo do crime&objetivos[1].conceitoCentral=crime&

estou passando esse array da seguinte forma:

$.ajax({ url: '/InformarPln/extracaoInformacao/extrair', async : true, cache : false, contentType: "application/json; charset=utf-8", dataType: 'json', data: {'texto' : texto, 'objetivos' : objetivos}, error: function (data) { alert("Ocorreu um problema ao tentar gerar a árvore de dependência"); }, }).done(function(data){ alert("funfou"); });

O array objetivo é montado no método abaixo:

function preencherObjetivos() { objetivos = []; var cont = 0; var pos = 0; $(".optionObj").each(function() { if ($('#objetivo' + cont).is(":checked")) { var idObjetivo = $('#objetivo' + cont).val(); var descricaoObjetivo = $('#descricaoObj' + cont).val(); var conceitoCentral = $('#conceitoCentral' + cont).val() objetivos += "objetivos[" + pos + "].id=" + idObjetivo + "&"; objetivos += "objetivos[" + pos + "].descricao=" + descricaoObjetivo + "&"; objetivos += "objetivos[" + pos + "].conceitoCentral=" + conceitoCentral + "&"; pos++; } cont++; }); }

Desculpem, não consegui ajeitar a formatação.

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java javascript jquery vraptor java-ee ou faça a sua própria pergunta.