Spring:Détails d'un produit


Afin d'afficher les détails d'un produitson doit créer:

  1. 1La méthode details() dans le controlleur ProduitController.java
  2. 2 La vue :details.jsp permettant d'afficher les détails d'un produit produit

1.La méthode details() dans le controlleur ProduitController.java


//La route pour afficher les détails d'un produit est /produits/id
@RequestMapping("/{id}")
public String details(@PathVariable int id, Model model)
{
//@PathVariable int id :récupérer le paramètre envoyé dans URL
// produits/1 =>id=1

//findById(id).get():=>select * from produit where id=id
Produit p=produitRepository.findById(id).get();
//Envoyer le produit p à la vue details.jsp
model.addAttribute("produit",p);
return "produits/details";

}

2. La vue :details.jsp permettant d'afficher les détails d'un produit produit

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html><head><title>Liste produits</title></head>
<body><style>
table,thead,tbody,tr{width:100%;} thead{background:#ddd;} td{border:1px solid #000;}
a {margin-right:10px;}</style>
<c:if test="${!empty produit}">
<span>Détails du produit:<b>${produit.nom}</b></span>
<table>
<thead><th>ID</th><th>Nom</th><th>Marque</th><th>Prix</th><th>Stock</th>

</thead>
<tbdoy>
<tr>
<td>${produit.id}</td>
<td>${produit.nom}</td>
<td>${produit.marque}</td>
<td>${produit.prix}</td>
<td>${produit.qteStock}</td>
</tr>

</tbdoy>
</table>
</c:if>
</body>
</html>

3.Supprimer un Produit



//La route pour supprimer un produit est /produits/id/supprimer :Avec GET
@RequestMapping("/{id}/supprimer")
public String supprimer(@PathVariable int id, Model model,RedirectAttributes attributes)
{
//@PathVariable int id,
// produits/1 =>id=1
//delete from produits where id=id
produitRepository.deleteById(id);
//Envoyer un message de confirmation à la vue index
attributes.addFlashAttribute("message", "Le produit est bien supprimé.");
//redirection pour afficher la liste des produits
return "redirect:/produits/";

}








Cours et TPs