Ludovic ROLAND

Blog technique sur mes expériences de développeur.

Spring Web MVC 3 : Mapper la page d’accueil du projet

31 janvier 2012

Après une petite absence causée par un mois de janvier généreux en examens, je reviens avec un billet sur Spring Web MVC 3.

Le problème

Le billet va traiter du problème qui est de mapper la page d’accueil d’un projet. En effet, si vous êtes comme moi, vous avez certainement une page index.jsp qui en toute logique est la page d’accueil de votre site internet.

Cette page est logiquement indiquée comme page de démarrage dans votre fichier web.xml de la façon suivante :

<welcome-file-list>
  <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

Cette page contient en toute logique des modules qui sont chargés à l’aide de votre contrôleur Spring qui mappe alors l’url /MonProjet/index.jsp grâce à l’annotation @RequestMapping :

@RequestMapping(value="**/index.jsp")

Le problème, c’est que lorsque votre projet est lancé, l’url affichée dans le navigateur n’est pas /MonProjet/index.jsp mais /MonProjet/ ce qui a pour conséquence de ne pas charger vos modules puisqu’en effet, l’url n’est pas mappée au niveau du contrôleur.

La solution

La solution est en réalité assez simple : il suffit de faire démarrer votre projet sur une page qui redirige vers votre page d’accueil.

Nous allons donc commencer par changer la page de démarrage dans notre fichier web.xml :

<welcome-file-list>
  <welcome-file>redirection.jsp</welcome-file>
</welcome-file-list>

Bien évidemment, il faut maintenant créer la page redirection.jsp.

Une fois la page créée, nous allons y insérer notre redirection entre les balises <body> :

<% response.sendRedirect("index.jsp"); %>

C’est terminé ! Si vous lancez votre projet, vous verrez que vous serez automatiquement redirigés vers l’url /MonProjet/index.jsp. Idem si vous tapez l’url /MonProjet/ à la main, la redirection est effective !

Commentaires