Мне нужно отправить подтверждение по электронной почте, так что теперь мне нужно локализовать отправленное сообщение. Я инициализировал i18n в spring, и теперь он отлично работает на jsp-страницах, но как я могу использовать его в своих контроллерах?
Как преобразовать текст внутри контроллера в Spring Framework 3?
Ответ 1
Если вы используете аннотированные контроллеры, вы можете autowire MessageSource и добавить локаль запроса следующим образом:
@Controller
@Scope("request")
public class MailController
{
@Autowired
private MessageSource messageSource;
@RequestMapping(value = "/mail/send", method = RequestMethod.GET)
public ModelAndView sendEmail(Locale locale)
{
String[] args = { "Mr.", "X" };
// E.g. message.code="Dear {0} {1}"
String mailmessage = messageSource.getMessage("message.code", args, locale);
// Do something
return new ModelAndView();
}
}