FORMULARIO JA PREENCHIDO OS CAMPOS --> ok
<h3 class="page-header">Atualizar produto</h3>
<form action="papelaria/editar" method="POST">
<div class="form-group">
<input type="text" class="form-control" name="id" value="${produto.id}" />
</div>
<div class="form-group">
Nome: <input type="text" name="nome" value="${produto.nome}" class="form-control">
</div>
<div class="form-group">
Descrição:
<textarea rows="5" cols="5" class="form-control" name="descricao">${produto.descricao}</textarea>
</div>
<div class="form-group">
Quantidade: <input type="text" name="quantidade" value="${produto.quantidade}" class="form-control">
</div>
<div class="form-group">
Categoria: <input type="text" name="categoria" value="${produto.categoria}" class="form-control">
</div>
<div class="form-group">
Codigo de barras: <input type="text" name="codigo" value="${produto.codigo}" class="form-control">
</div>
<input type="submit" value="ATUALIZAR" class="btn btn-primary">
</form>
O Erro acontece após apertar ATUALIZAR.
CONTROLLER:
@Controller @RequestMapping("produtos") public class ProdutoController {
@Autowired
private ProdutoDao dao;
@RequestMapping(method = RequestMethod.POST, value = "/editar/{id}") public ModelAndView editar(@PathVariable Produto produto) { dao.atualizar(produto); ModelAndView andView = new ModelAndView("redirect:/produtos"); andView.addObject("produtos", produto); return andView; }
OLHA O DAO:
@Repository @Transactional public class ProdutoDao {
@PersistenceContext private EntityManager manager;
public void atualizar(Produto id) { Produto modificar = manager.find(Produto.class, id); if (modificar != null) { Produto modificado = manager.merge(modificar); }
}