Como enviar uma lista e um parâmetro para o controller?

0 respostas
java
D

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?

Criado 17 de dezembro de 2018
Respostas 0
Participantes 1