Estou tentando enviar uma lista e um parâmetro para o meu controller.
Consigo enviar a lista, porém não consigo enviar a lista e um parâmetro ao mesmo tempo.
Vejam meu controller:
@RequestMapping("/lista-receitas")
@ResponseBody
public String recebeLista(@RequestBody List<Receita> receitas, @RequestParam("nome") String nome){
System.out.println("Receita: "+ nome);
for(Receita r: receitas){
System.out.println("ID: "+r.getId() +" Nome: "+ r.getNome());
}
return "Sucesso";
}
Meu JavaScript:
function enviarLista(){
var receita = lista();
var nome = "adm";
jQuery.ajax({
type: 'POST',
contentType: "application/json",
url: 'lista-receitas',
data:{ // Passando dessa forma não da certo
receita:JSON.stringify(receita),
nome: nome
},
dataType: 'json',
success: function(data){
alert(data);
}
});
}
function lista(){
var lista=[];
var Receita = new Object();
var receitas = $('.receita');
$(receitas).each(function(i){
Receita = {
id: $('#'+receitas[i].id).find("#id").text().trim(),
nome: $('#'+receitas[i].id).find("#nome").text().trim()
}
lista.push(Receita);
})
return lista;
}
Se passo dessa forma, consigo enviar a lista com sucesso:
function enviarLista(){
var receita = lista();
var nome = "adm";
jQuery.ajax({
type: 'POST',
contentType: "application/json",
url: 'lista-receitas',
data:JSON.stringify(receita),
dataType: 'json',
success: function(data){
alert(data);
}
});
}
Sabem qual pode ser o problema?