Académique Documents
Professionnel Documents
Culture Documents
MVC
Spring MVC
Spring MVC
DéfiniBon
applica&on framework
• OuBls et de règles
Spring MVC 2
Architecture
Spring MVC 3
Contrôleur
DéfiniBon
• point d'entrée qui définit les services
Spring MVC 4
Mon premier contrôleur
Exemple de code
@Controller
public class SimpleController {
@RequestMapping("/simple")
@ResponseBody
public String simple() {
return "Hello world!";
}
}
Spring MVC 5
@RequestMapping
DéfiniBon
• AssociaBon d’une URL et d’une méthode
@RequestMapping("/rdv")
@Controller
public class RdvController {
@RequestMapping("/nouveau")
http://.../rdv/nouveau
public String nouveau() { ... }
@RequestMapping("/liste")
public String liste() { ... } http://.../rdv/liste
}
Spring MVC 6
@RequestMapping
Paramètres
• URLs paramétrées {...} avec annotaBon @PathVariable
@RequestMapping("/rdv")
@Controller
public class RdvController {
@RequestMapping("/details/{nom}") http://.../rdv/details/Bob
public String findByName(
@PathVariable String nom ) { ... }
@RequestMapping("/details/{nom}/{date}") http://.../rdv/details/Bob/mai
public String findByNameAndDate(
@PathVariable String nom,
@PathVariable String date ) { ... }
Spring MVC 7
@RequestMapping
Paramètres
• UBlisaBon d’expressions régulières {regexp}
• AssociaBon d’un nom de variable {varName: regexp}
Exemples
@RequestMapping("/hotels/{hotel}/*")
@RequestMapping("/fichier/{symbolicName:[a-z]+}{extension:\\.[a-z]+}")
Spring MVC 8
@RequestMapping
Requêtes HTTP
• différenBaBon des méthodes HTTP uBlisées
@RequestMapping("/clients")
@Controller
public class ClientController {
Spring MVC 9
@RequestMapping
Requêtes HTTP
• depuis Spring 4.3
@RequestMapping("/clients")
@Controller
public class ClientController {
@GetMapping("/{nom}")
public String lire(...) { ... }
@PostMapping("/{nom}")
public String ajouter(...) { ... }
}
Spring MVC 10
InjecBon de paramètres
Différents types de paramètres supportés
• session
• requête HTTP
• flux d'entrée et de sorBe de la requête
• paramètres de la requête
• etc.
@Controller @RequestMapping("/ecommerce")
public class MagasinController {
@GetMapping("/ajouter/{id}")
public String ajouter( HttpSession session, @PathVariable String id ) {
Panier monPannier = session.getAttribute("panier");
if( monPannier == null ) {
monPannier = new Pannier();
session.setAttribute("panier", monPannier);
}
monPannier.ajouter(id);
} }
Spring MVC 11
Paramètres de retour
Différents types de paramètres supportés
• contenu de fichier HTML
• vue public class Article {
• objet sérialisé en JSON private String id;
• redirecBon private String nom;
private double prix;
• etc. // constructeur
// getter/setter
@Controller @RequestMapping("/ecommerce") }
public class MagasinController {
Spring MVC 12
Paramètres de retour
Différents types de paramètres supportés
• redirecBon
@Controller @RequestMapping("/ecommerce")
public class MagasinController {
Spring MVC 13
En résumé
Spring MVC
• un framework pour les applicaBons web MVC
Spring MVC 14