Boa noite!
Quando é selecionado um livro da erro 404 pois a url que retorna não vem apenas o ID vem desta forma:
http://localhost:8080/casadocodigo/href=%22http://localhost:8080/casadocodigo/produtos/detalhe/2%22
No Dao esta assim:
public Produto find(int id) {// // TODO Auto-generated method stub return manager.createQuery("select distinct(p) from Produto p join fetch p.precos precos where p.id = :id", Produto.class).setParameter("id", id).getSingleResult(); }
No Controller Assim:
@RequestMapping("/detalhe/{id}") public ModelAndView detalhe(@PathVariable("id") Integer id) { ModelAndView modelAndView = new ModelAndView("/produtos/detalhe"); Produto produto = produtoDao.find(id); modelAndView.addObject("produto", produto); return modelAndView; }
Na jsp assim:
<c:forEach items="${produtos}" var="produto"> <li> <a href=href="${s:mvcUrl('PC#detalhe').arg(0, produto.id).build()}" class="block clearfix"> <h2 class="product-title">${produto.titulo}</h2> <img width="143" height="202" src="https://cdn.shopify.com/s/files/1/0155/7645/products/java8-featured_large.png?v=1411490181" alt="Java 8 Prático" title="Java 8 Prático"/> <small class="buy-button">Compre</small> </a> </li> </c:forEach>