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

Cadastro de produtos

Ola pessoal tudo bem ?

Estou tendo um problema ja no inicio, no capitulo 2 aula 1, é ensinado a cadastrar um livro no começo da aula, sem a utilizacao do banco, usando formulario jsp.

O problema é: Nao estou conseguindo pegar o valor do total de pagina.

O restante dos dados estao sendo salvos corretamente ( Hibernate: insert into Produto (descricao, pagina, titulo) values (?, ?, ?) titulo=Java 8 descricao=Faz qualquer coisa pra testar pagina=0 )

Meu codigo esta semelhante ao do professor.

Segue o codigo.

Classe produto

package br.com.casadocodigo.loja.models;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

import com.sun.istack.internal.NotNull;

@Entity
public class Produto {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)

    private int id;
    private String titulo;
    private String descricao;
    private int pagina;



    @Override
    public String toString() {
        StringBuilder builder = new StringBuilder();
        builder.append("titulo=");
        builder.append(titulo);
        builder.append("\ndescricao=");
        builder.append(descricao);
        builder.append("\npagina=");
        builder.append(pagina);
        builder.append("\n");
        return builder.toString();
    }



    public int getId() {
        return id;
    }



    public void setId(int id) {
        this.id = id;
    }



    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 getPagina() {
        return pagina;
    }



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


}

Classe ProdutoController

@Controller public class ProdutosController {

@Autowired private ProdutoDAO produtoDAO;

@RequestMapping("/produtos/form") public String form() { return "produtos/form"; }

/* Metodo para gravar os dados dos livros @param titulo @param descricao @param paginas @return / @RequestMapping("/produtos") public String grava(Produto produto) { System.out.println(produto); produtoDAO.gravar(produto); return "produtos/ok"; } }

form.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html>

Título
Descrição
Páginas
4 respostas

Oi Julio, tudo bem ?

Cara não to conseguindo ver seu jsp para ver o erro, consegue colocar dentro do formatador de código?

Tranquilo Matheus e voce como vai ? \o/

Segue o codigo do meu JSP.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Livros de java, Android, Iphone, PHP, Ruby e muito mais -
    Casa do código</title>
</head>
<body>
    <form action="/casadocodigo/produtos" method="POST">
        <div>
            <label>Título</label> <input type="text" name="titulo" />
        </div>
        <div>
            <label>Descrição</label>
            <textarea rows="10" cols="20" name="descricao"
                placeholder="Informe uma breve descrição do Livro"></textarea>
        </div>
        <div>
            <label>Páginas</label> <input type="text" name="paginas" />
        </div>
        <button type="submit">Cadastrar</button>
    </form>
</body>
</html>
solução!

Problema encontrado!

Na sua classe você chamou de pagina enquanto no jsp está paginas, o spring não consegue fazer o binding e por esse motivo vai zerado

Substitui em um dos lados que deve funcionar.

Matheus, muito obrigado.

Novamente um erro pequeno que deixei passar =/.

Mas agradeço demais a ajuda, funcionou aqui apos a modificacao \o/ \o/.

abraço