I'm trying to send a list and a parameter to my controller. My controller looks like this:
@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";
}
In my method I want to receive a list and a name.
My JavaScritp is as follows:
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;
}
function enviarLista(){
var receita = lista();
var nome = "adm";
jQuery.ajax({
type: 'POST',
//contentType: "application/json",
url: 'lista-receitas',
data:{
receita:JSON.stringify(receita),
nome: nome
},
//dataType: 'json',
success: function(data){
alert(data);
}
});
}
If you just send the list and removing the name parameter my controller works normally.