Notions abordées :
Créer le projet td0 :
Configurer le projet dans application.properties, pour que le contextPath soit td0/, configurer Mustache
On utilisera Semantic-UI pour la partie présentation.
Créer un template header.html :
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Gestion d'items</title> <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/semantic.min.css"> </head> <body> <div class="ui container">
Créer un template footer.html :
</div><!-- Fermeture de la div ui-container --> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/semantic.min.js"></script> </body> </html>
Créer une classe Element dans s4.spring.models :
Ajouter :
L'annotation @SessionAttributes permet de définir des variables de session. Combinée à @ModelAttribute, elle permet l'initialisation correcte de la variable de session.
@SessionAttributes("items")
public class MainController {
@ModelAttribute("items")
public List<String> getItems(){
return new ArrayList<>();
}
}
| Adresse | Description |
|---|---|
| items/ | Affiche la liste des éléments stockée en Session + 1 bouton pour ajouter un élément (/items/new) |
| items/new | Afficher un formulaire d'ajout d'élément (seulement son nom), la validation va vers /items/addNew puis redirige vers /items |
| items/inc/{nom} | Incrémente l'évaluation de l'élément de 1, puis redirige vers /items |
| items/dec/{nom} | Décrémente l'évaluation de l'élément de 1, puis redirige vers /items |
Effectue l'ajout, puis redirige la réponse vers la route /items
@PostMapping("items/addNew")
public RedirectView addNew(@RequestParam String nom) {
...
return new RedirectView("/items/");
}