Я хочу, чтобы переключить язык с английского и китайского языков, поэтому я создаю два языковых файлов:Как я могу переключать язык динамически весной mvc?
messages_en.properties messages_zh.properties
и в файл JSP, мой код, как показано ниже:
<c:choose>
<c:when test="${language=='en'}">
<a href='<c:url value="/language?language=zh" />'>
<i class='glyphicon glyphicon-asterisk'></i>
<s:message code="label.language" />
</a>
</c:when>
<c:otherwise>
<a href='<c:url value="/language?language=en" />'>
<i class='glyphicon glyphicon-asterisk'></i>
<s:message code="label.language" />
</a>
</c:otherwise>
и в файле контроллера, мой код, как показано ниже:
@RequestMapping(value = { "/language" }, method = RequestMethod.GET)
public String switchLanguage(@RequestParam("language") String language,
ModelMap model) {
Locale currentLocale = null;
if ("zh".equals(language)) {
currentLocale = new Locale("zh", "CN");
} else if ("en".equals(language)) {
currentLocale = new Locale("en", "US");
}
model.put("language", currentLocale.getLanguage());
return "/book/index";
}
и в XML-файле, я конфиг MessageSource, как показано ниже:
<bean id="messageSource"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basename" value="classpath:language/messages"/>
<property name="defaultEncoding" value="UTF-8"/>
</bean>
Как я могу изменить свой код действия контроллера для переключения языка динамически?
Спасибо.
Учебник использует ControllerClassNameHandlerMapping который устаревшее весной 4.3.4 –