Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Spring: Receber List no controller

Olá,

É possível receber uma lista no meu controller, sem utilizar uma classe que tenha essa lista em seus atributos? algo como...

public ModelAndView metodo(List<Entidade> entidades) {
        return new ModelAndView();
    }

Dessa forma acontece o seguinte erro:

SEVERE: Servlet.service() for servlet [dispatcher] in context with path [/sistema] threw exception [Request processing failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [java.util.List]: Specified class is an interface] with root cause
org.springframework.beans.BeanInstantiationException: Failed to instantiate [java.util.List]: Specified class is an interface
4 respostas

Oi Kelvin, tudo bem? Receber é possível sim (acredito), mas você precisa criar esse List em algum momento. Como pensa em fazer isso? De onde você quer receber esse List?

Estou enviando através de um formulário, talvez n esteja correto...

<input type="number" name="pagamentos[0].valor">
<input type="number" name="pagamentos[0].quantidade">

Na verdade meu controller está assim

@RequestMapping(value="/{id}/pagar", method=RequestMethod.POST)
public ModelAndView pagar(@PathVariable("id") int transacaoId, List<Pagamento> pagamentos, BindingResult result) {

}
solução!

Opa Kelvin, receber a list direto não vai dar, você precisar criar uma classe que represente o seu formulário e ter o atributo que representa a lista, com seus getters e setters. Aí, no form, vc só muda o name.

Muito obrigado por esclarecer a dúvida!