Blog technique sur mes expériences de développeur.
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 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 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 !