Spring: No message found under code for locale 'en_US'
For those using @Bean
annotation for bundleMessageSource
.
Add the name for @Bean
.
name="messageSource"
Use the same name we used to create the MessageSource
object in @RestController
class
@RestController
public class HelloWorldController {
@Autowired
private MessageSource messageSource;
@GetMapping(path = "/hello-world-internationalized")
public String helloWorldInternationalized(@RequestHeader(name = "Accept-Language", required = false) Locale locale) {
return messageSource.getMessage("good.morning.message", null, locale);
}
}
Then in the @SpringBootApplication
class
@Bean(name="messageSource")//wont work without the bean name
public ResourceBundleMessageSource bundleMessageSource() {
ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
messageSource.setBasename("messages");
return messageSource;
}
Referred this link
does it work if you change to:
classpath:messages
?
I had the experience that if using ReloadableResourceBundleMessageSource
, in jsp will not find the properties file. adding classpath:
before the basename
solved my problem.
Well even though was my project managed by maven, I think you can give it a try anyway.