Spring MVC : interceptor / Internationalisation
Bonjour,
J'ai un projet qui fonctionne très bien.
Je viens d'ajouter l'internationalisation avec changement de langue sur un lien.
Tout fonctionne parfaitement (changement de langue) sauf sur les méthode de recherche/submit et recherche/reset.
Voici un aperçu du code.
Le Controller :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| @Controller
@RequestMapping(value = "/backupSib")
public class BackupSibController {
...
@Autowired
@Qualifier(value = "backupSibService")
private BackupSibService service;
...
@RequestMapping(value = "/search1Form")
public String search1Form(Model model) {
model.addAttribute("backupSibForm", new BackupSibForm());
model.addAttribute("backupSibList", new ArrayList<BackupSib>());
return "backupSib/search1";
}
@RequestMapping(value = "/search1Submit", params = { "search" })
public String search1Submit(@ModelAttribute("backupSibForm") BackupSibForm backupSibForm, BindingResult bindingResult, Model model) {
List<BackupSib> list = service.findAll(service.prepareSpecifications(backupSibForm.getBackupSib()));
model.addAttribute("backupSibForm", backupSibForm);
model.addAttribute("backupSibList", list);
return "backupSib/search1";
}
@RequestMapping(value = "/search1Submit", params = { "reset" })
public String search1Reset() {
return "redirect:search1Form";
}
...
} |
La JSP :
Code:
1 2 3 4 5 6 7 8 9
| ...
<spring:url value="" var="french">
<spring:param name="siteLanguage" value="fr" />
</spring:url>
<spring:url value="" var="english">
<spring:param name="siteLanguage" value="en" />
</spring:url>
<a href="${french}">French</a> | <a href="${english}">English</a>
... |
La configuration XML:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| ...
<mvc:interceptors>
<bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
<property name="paramName" value="siteLanguage" />
</bean>
</mvc:interceptors>
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basenames">
<list>
<value>messages/messages</value>
<value>messages/validation</value>
</list>
</property>
<property name="defaultEncoding" value="UTF-8" />
</bean>
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver" />
... |
Tout fonctionne bien, sauf après avoir lancé la recherche, lorsque je change de langue.
J'obtiens alors cette erreur.
Code:
1 2 3 4 5 6
| ...
Failed URL: http://localhost:8080/BusWeb/backupSib/search1Submit
Exception: Parameter conditions "siteLanguage, search" OR "siteLanguage, reset" not met for actual request parameters: backupSib.busId={0}, backupSib.busDateValidationMax={____/__/__ __:__}, backupSib.busDateCreationMax={____/__/__ __:__}, backupSib.busDateHeureDenoMax={____/__/__ __:__}, backupSib.busDateHeureDenoMin={____/__/__ __:__}, backupSib.actif.rooReferId={}, backupSib.entiteSib.ensCode={}, backupSib.busDateCreationMin={____/__/__ __:__}, backupSib.actif.actCode={}, backupSib.busExAnnPsettR.rooReferId={}, backupSib.busExAnnPsettR.annSwiftBranchCode={}, backupSib.busStatut={}, backupSib.busRefSg={}, backupSib.actif.actLibelle={}, backupSib.actif.actCodeIsin={}, search={}, backupSib.busRefSib={}, backupSib.busDateValidationMin={____/__/__ __:__}, backupSib.busExAnnPsettR.annSwiftBankCode={}, backupSib.entiteTeneurCompte.etcCode={}, backupSib.typeOperation.rooReferId={}, backupSib.busFiliere={}
org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping.handleNoMatch(RequestMappingInfoHandlerMapping.java:238)
... |
Je comprends bien que ce paramètre est a une place à part.
Mais que dois-je faire ?
Merci d'avance.