
Développement web traditionnel avec Spring MVC
Apprenez à construire des applications web traditionnelles (rendu côté serveur) avec Spring MVC dans Spring Boot : contrôleurs, modèles, vues, formulaires.
Au-delà des API REST : Construire des interfaces web avec Spring MVC
Alors que le chapitre précédent se concentrait sur la création d'API RESTful, idéales pour les architectures microservices ou les clients riches (comme les Single Page Applications), de nombreuses applications nécessitent encore une approche plus traditionnelle du développement web. Il s'agit ici de générer des pages HTML directement côté serveur et de les renvoyer au navigateur de l'utilisateur. C'est le domaine classique du pattern Modèle-Vue-Contrôleur (MVC), et Spring fournit un module puissant et flexible pour cela : Spring Web MVC.
Ce chapitre explore comment utiliser Spring Boot et Spring Web MVC pour construire des applications web où la logique de présentation est gérée côté serveur. Nous allons découvrir les composants clés et les annotations spécifiques qui permettent de gérer les requêtes entrantes, de traiter les données, et de sélectionner la vue appropriée à rendre pour l'utilisateur.
Les piliers de Spring Web MVC : Contrôleurs, Modèles et Vues
Le coeur de Spring MVC repose sur le pattern MVC. Nous allons décortiquer comment Spring l'implémente :
- Le Contrôleur (Controller) : Représenté par des classes annotées avec
@Controller(à ne pas confondre avec@RestControllervu précédemment). Le contrôleur reçoit les requêtes HTTP, exécute la logique métier appropriée (souvent en déléguant à des services), prépare les données à afficher et sélectionne la vue. - Le Modèle (Model) : Il contient les données qui doivent être affichées dans la vue. Spring offre plusieurs façons de passer ces données du contrôleur à la vue, notamment via les objets
ModelouModelAndView. - La Vue (View) : Responsable de la présentation des données du modèle à l'utilisateur. Spring MVC est conçu pour être indépendant de la technologie de vue. Nous verrons comment il s'intègre avec divers moteurs de templates (comme Thymeleaf, abordé en détail au chapitre suivant) pour générer le HTML final.
Nous étudierons en détail l'annotation @Controller et comment elle diffère de @RestController dans la manière dont les réponses sont traitées (retour de noms de vues logiques plutôt que de corps de réponse directs).
Gestion des interactions utilisateur : Formulaires et état
Les applications web traditionnelles impliquent souvent l'interaction avec l'utilisateur via des formulaires HTML. Spring MVC fournit un support robuste pour la gestion des soumissions de formulaires, y compris le data binding (liaison des données du formulaire à des objets Java) à l'aide de l'annotation @ModelAttribute, et la validation (qui sera approfondie dans un chapitre ultérieur).
Contrairement aux API REST souvent stateless, les applications web traditionnelles peuvent nécessiter la gestion d'un état conversationnel entre plusieurs requêtes d'un même utilisateur. Nous aborderons donc les mécanismes de gestion des sessions HTTP et des cookies avec Spring MVC.
Enfin, pour s'adresser à un public international, la prise en charge de l'internationalisation (i18n) et de la localisation (L10n) est cruciale. Nous verrons comment Spring MVC facilite la gestion de multiples langues et formats régionaux dans vos applications web.
Ce chapitre pose les bases de la construction d'interfaces utilisateur web rendues côté serveur avec Spring Boot, en préparant le terrain pour l'intégration des moteurs de templates qui donneront vie à ces interfaces.