代码
Locale locale = new Locale(Language.LANG, "");
String baseName = "i18n/messages";
ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
ResourceBundle messages= ResourceBundle.getBundle(baseName, locale);
String value = messages.getString("greeting"); // Working
String value1 = messageSource.getMessage("greeting", null, locale); // Exception.
堆栈跟踪
Exception in thread "main" org.springframework.context.NoSuchMessageException: No message found under code 'greeting' for locale 'ru'.
at org.springframework.context.support.AbstractMessageSource.getMessage(AbstractMessageSource.java:161)
at ru.pcask.AdsmanagerApplication.main(AdsmanagerApplication.java:102)
问题
messages.getString("greeting")
运行良好。但我想使用getMessage或其他可以在方法中使用locale的东西,而不是预先设置它。
我怎样才能做到这一点?
您可以使用MessageSource并调用getMessage(String s,Object[]obj,Locale Locale(
@Autowired
private MessageSource messageSource;
String message = messageSource.getMessage("greeting", obj, locale);