No meu produto controller no método que vai receber o requestmapp do formulário e gravar meu produto no BD, quando eu passo como parâmetro do método um obj do tipo produto, a aplicação não quebra mas eu começo a rececer um status 400. ex:
Funciona normal e retorna as saídas no console e eu recebou uma msg do servidor que n foi possível achar a pagina "ok.jsp", ou seja resultado esperado:
@requestMapping(method = RequestMethod.POST)
public String grava(String titulo ) {
System.out.println( "acessando o grava" );
System.out.println( titulo );
return "ok";
}
agora se eu mando como parâmetro do método um Produto
@requestMapping(method = RequestMethod.POST)
public String grava(Produto produto ) {
System.out.println( "acessando o grava" );
System.out.println( produto.getTitulo());
return "ok";
não aparece nada no console e a mensagem do servidor é apenas um HTTP STATUS - 400 -
classe controller
@Controller
@RequestMapping("/produtos")
public class ProdutoController {
@RequestMapping("/form")
public ModelAndView formCadastraProduto() {
ModelAndView modelAndView = new ModelAndView("produtos/cadastra");
return modelAndView;
}
@RequestMapping("/lista")
public ModelAndView listaDeProdutos() {
ModelAndView modelAndView = new ModelAndView("produtos/lista");
System.out.println("ois");
return modelAndView;
}
@RequestMapping(method = RequestMethod.POST)
public String cadastraProduto(Produto produto) {
System.out.println("acessando@SS");
return "k";
}
}
classe produto
@Entity
public class Produto {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int id;
private String titulo;
private int paginas;
private String descricao;
@DateTimeFormat(pattern = "dd/MM/yyyy")
private BigDecimal preco;
private Calendar dataLancamento;
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 int getPaginas() {
return paginas;
}
public void setPaginas(int paginas) {
this.paginas = paginas;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
public BigDecimal getPreco() {
return preco;
}
public void setPreco(BigDecimal preco) {
this.preco = preco;
}
public Calendar getDataLancamento() {
return dataLancamento;
}
public void setDataLancamento(Calendar dataLancamento) {
this.dataLancamento = dataLancamento;
}
@Override
public String toString() {
return "Produto [id=" + id + ", titulo=" + titulo + ", paginas=" + paginas + ", descricao=" + descricao
+ ", preco=" + preco + ", dataLancamento=" + dataLancamento + "]";
}
}
formulario:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ include file="/WEB-INF/views/template-head.jsp"%>
<form action="${s:mvcUrl('PC#cadastraProduto').build() }" method="post" class="form-horizontal">
<fieldset>
<!-- Form Name -->
<legend>Cadastre seu Livro</legend>
<!-- Text input-->
<div class="form-group">
<label class="col-md-4 control-label" for="titulo">Titulo:</label>
<div class="col-md-4">
<input name="titulo" type="text" class="form-control input-md">
</div>
</div>
<!-- Text input-->
<div class="form-group">
<label class="col-md-4 control-label" for="paginas">paginas:</label>
<div class="col-md-4">
<input name="paginas" type="number" class="form-control input-md">
</div>
</div>
<!-- Textarea -->
<div class="form-group">
<label class="col-md-4 control-label" for="descricao">Descrição</label>
<div class="col-md-4">
<textarea class="form-control" name="descricao"></textarea>
</div>
</div>
<!-- preco input-->
<div class="form-group">
<label class="col-md-4 control-label" for="preco">Preço:</label>
<div class="col-md-4">
<input name="preco" type="number" class="form-control input-md">
</div>
</div>
<!-- Date input-->
<div class="form-group">
<label class="col-md-4 control-label" for="dataLancamento">Lançamento:</label>
<div class="col-md-4">
<input name="dataLancamento" type="date" class="form-control input-md">
</div>
</div>
<!-- Button -->
<div class="form-group">
<label class="col-md-4 control-label" for="Confirma"></label>
<div class="col-md-4">
<button type="submit" class="btn btn-primary">Confirma</button>
</div>
</div>
</fieldset>
</form>
</body>
</html>