Bonjour,
Je débute en Spring MVC et j'ai besoin de votre coup de main pour l'internationalisation.
J'essaie de créer une simple page de login en français et en anglais avec une seule jsp qui doit afficher les informations récupérées soit dans le fichier 'messages_en', soit dans 'messages_fr' en fonction de langue par défaut du navigateur.
Ces 2 fichiers sont dans 'WEB-INF/classes'.
Dans 'applicationContexte.xml', j'initialise le bean 'messageSource'
Voici mon mapping dans 'nomduservlet-servlet.xml'
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"> <property name="basenames"> <list> <value>messages</value> </list> </property> </bean>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <bean name="loginForm" class="org.springframework.web.servlet.mvc.SimpleFormController"> <property name="formView" value="loginForm"/> <property name="successView" value="loginSuccess"/> <property name="commandName" value="userLogin"/> <property name="commandClass" value="org.deep.spring.mvc.user.User"/> </bean>Je n'ai pas créé de Controller dans mon projet, j'utilise simplement 'SimpleFormController'.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <props> <prop key="loginForm.htm">loginForm</prop> </props> </property> </bean>
Voici une partie du code dans 'loginForm.jsp'
et le répertoire contenant les fichiers properties
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <%@ include file="/WEB-INF/include.jsp" %> <html> <head><title><spring:message code="user.login.title"/></title></head> <body> <hr> <h2><center><spring:message code="user.login.title.body" /></center></h2> <form:form action="loginForm.htm" method="POST" commandName="userLogin"> ...
WEB-INF
|
---classes
|__ messages_en.properties|__messages_fr.properties
En gros, ce que ce fais actuellement, c'est de récupérer les valeurs de ces fichiers directement dans la jsp avec
en fonction de la langue du navigateur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3spring:message code="user.login.title.body" ...
mais ça ne marche pas. Si j'utilise français comme langue du navigator, y il a un plantage
Je vous assure que code 'user.login.title.body' est bien présent dans messages_fr.properties
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 org.apache.jasper.JasperException: An exception occurred processing JSP page /jsp/loginForm.jsp at line 6 3: <head><title><spring:message code="user.login.title"/></title></head> 4: <body> 5: <hr> 6: < <h2><center><spring:message code="user.login.title.body" /></center></h2> 7: <form:form action="loginForm.htm" method="POST" commandName="userLogin"> 8: <table align="center"> 9: <tr> Cause mère: javax.servlet.ServletException: javax.servlet.jsp.JspTagException: No message found under code 'user.login.title.body' for locale 'fr'.
et si je change de langue (du navigateur) en anglais. Pas de plantage mais les infos sont affichées en français.
D'où peut venir ce comportement?
Est-ce que c'est possible de récupérer les le contenu du fichier .properties directement dans la jsp (sans passer par un bean implémentant Controller et récupérant le context de l'application)?
Merci d'avance de vos réponses.
Partager