4
respostas

Multiplos objetos iguais vindo da view por meio do form

Pessoal, estou criando uma sessão em que o usuário vai adicionando novos produtos sem sair da tela, por exemplo:

<form...>
    nome: <input name="nome">
    valor: <input name="descricao">
    ...
    <button type="submit">
</form>

Nesse caso, vou tendo diversos nome que chegam no meu controller como um vetor de nome[], além de descricao[];

Porém, se meu objeto produto é composto por nome e descricao, porque não consigo dizer ao spring que isso é uma List produtos?

class Produto {
    private String nome;
    private String descricao;

    //construtores e construtor default
    ...
    // getters e setters
    ...
}

Em meu controller, tenho o seguinte e não tem funcionado:

@PostMapping("/produtos")
public void recebeProdutosCadastraDeUmaVez(
    List<Produto> produtos,
    ...
){
    //Implementa o Controller
}

Como deveria ter feito?

4 respostas

É, não consegue mesmo :(. Você precisa criar uma classe, que tem atributo do tipo de List, gerar o getter e o setter e recebe esse novo tipo de objeto no seu parâmetor.

Hummm... Não entendi sua solução.

class Formulario {
   private List<Produto> produtos = new ArrayList<Produto>();

   //gets e sets
}

Esse é o parâmetro que você vai receber no método do controller.

Como ficaria meu controller? hmm... Ai eu receberia um objeto que nele vai ter uma lista de objetos? Sérá?!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software