Université Claude Bernard Lyon 1 – M1 informatique – M1IF03
TP M1IF03 - Spring Web MVC
Objectifs pédagogiques
Découvrir le framework Spring et en particulier le projet Spring MVC.
Description de l'application
Dans cette partie, vous allez compléter votre application de chat avec un "back office" qui permettra aux utilisateurs d'effectuer directement des opérations simples sur les ressources du chat (utilisateurs, salons, messages).
Premier projet Spring Web MVC
Dans cette partie, vous vous inspirerez des transparents du cours et de la doc de Spring Web MVC.
Le plus simlpe est de repartir de la dernière version de votre projet Web Maven du TP précédent (mais vous pouvez aussi recréer un projet Maven Web vide, avec les bonnes dépendances).
Configuration
- Ajoutez-y les dépendances de ce fichier pom.xml.
- Dans le dossier src/main/webapp/WEB-INF, créez (s'il n'existe pas) un fichier de configuration web.xml ou modifiez-le comme indiqué en cours (slide 44)
- Dans ce même dossier, collez ce fichier et renommez-le en <leNomDeVotreDispatcherServlet>-servlet.xml
- Créez un sous-dossier "jsp" dans WEB-INF. Indiquez dans le fichier de configuration Spring que le view resolving sera réalisé par la classe org.springframework.web.servlet.view.UrlBasedViewResolver, et que les View seront implémentées sous forme de JSP et devront être recherchées dans ce dossier (cf. slide 47 du cours)
Contrôleur et vue
- Créez un package fr.univlyon1.mif03.tpspring.controller et collez-y la classe HelloController. Annotez-la à l'aide de l'annotation @Controller et faites en sorte que ce contrôleur réponde aux requêtes sur "/hello".
- Créez une JSP qui réalise la vue correspondante.
- Déployez et testez.
Bean Spring
- Créez un package fr.univlyon1.mif03.tpspring.beans et collez-y le bean HelloBean.
- Faites en sorte que votre contrôleur appelle le bean et renvoie à la JSP un objet ModelAndView en fonction d'un paramètre passé dans la requête.
- Ajoutez la configuration correspondante pour votre bean :
- Soit en XML : <bean id="helloBean" class="fr.univlyon1.mif03.tpspring.beans.HelloBean"></bean>
- Soit avec l'annotation @bean
- Testez à nouveau.
Indications :
Vous pouvez vous inspirer de ce tutoriel, mais arrêtez-vous à la fin de la partie "Create a web controller" (rappel : Spring Boot est hors du scope de ce TP ; vous ne devez donc pas l'utiliser).
Remarque : si vous devez modifier la version de Spring utilisée dans le tutoriel pour qu'elle soit compatible avec la version des dépendances disponible dans le repository Maven, vous pouvez chercher ces dépendances sur http://search.maven.org/.
Aide : voici un corrigé rapide de cette partie.
Utilisation de Spring avec votre projet chat
- Reprenez votre projet Maven de chat, et "mappez" vers une URL spécifique (par exemple : "/back-office"), le contrôleur Spring (laissez les autres types d'URLs mappées vers votre chat)
- Utilisez Spring Web MVC pour bâtir l'architecture de votre back-office. Dans un premier temps, on doit pouvoir envoyer les requêtes suivantes au back office :
- GET sur une URL comportant le nom d'un salon pour voir la liste des messages dans ce salon
- POST sur une URL particulière (par exemple "users") pour rajouter un utilisateur qui aura le droit d'utiliser le chat ; modifiez le projet chat en conséquence, pour que seuls les utilisateurs dont les pseudos figurent dans cette liste aient les droits correspondants. Merci de fournir le formulaire permettant de faire le post pour ajouter un utilisateur.
- GET sur une URL comportant le nom d'un salon et le numéro d'un message pour voir le contenu de ce message
Instructions de rendu
Ce TP est à rendre avec le précédent et le suivant. Il faut donc le pusher dans votre repository sur la forge. Vous taggerez la dernière révision concernant ce TP ainsi : "TP-Spring".
Vous aurez besoin d'avoir terminé ce TP pour pouvoir faire le suivant.