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<Objetivo> 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");
});</code>
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++;
});
}