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

Spring não recupera todos os campos do formulário

Olá,

Estou com um problema ao gravar o produto, o atributo paginas não é preenchido com o valor passado no campo do formulário. Utilizei o inspetor do navegador para visualizar o cabeçalho da requisição e o parâmetro é passado corretamente. Segue códigos da classe produto e do formulário.

Produto.java

@Entity
public class Produto {

    @Id @GeneratedValue(strategy=GenerationType.IDENTITY)
    private Integer id;
    private String titulo;
    private String descricao;
    private int paginas;

    public String getTitulo() {
        return titulo;
    }

    public void setTitulo(String titulo) {
        this.titulo = titulo;
    }

    public String getDescricao() {
        return descricao;
    }

    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }

    public int getPaginas() {
        return paginas;
    }

    public void setPagina(int paginas) {
        this.paginas = paginas;
    }

    @Override
    public String toString() {
        return "Produto [titulo=" + titulo + ", descricao=" + descricao + ", paginas=" + paginas + "]";
    }

}

form.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Livros de Java, Android, iPhone, Ruby, PHP e muito mais - Casa do Codigo</title>
</head>
<body>
    <form action="gravarProduto" method="post">
        <label for="titulo">Título</label>
        <input type="text" name="titulo" id="titulo"><br>
        <label for="descricao">Descrição</label>
        <textarea name="descricao" id="descricao" cols="30" rows="10"></textarea><br>
        <label for="paginas">Páginas</label>
        <input type="text" name="paginas" id="paginas"><br>
        <button type="submit">Cadastrar</button>
    </form>
</body>
</html>
2 respostas
solução!

Olá Bruno,

Tenta mudar o

public void setPagina(int paginas) {
        this.paginas = paginas;
    }

para

public void setPaginas(int paginas) {
        this.paginas = paginas;
    }

no plural para ver se resolve.

Opa, deu certo. Obrigado Fillipe.

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