我正在通过Udemy课程学习Spring。我已经到达了国际化的主题,这对我和我目前的工作都非常有用。 在按照课程配置代码后,当我请求localhost:8080 / hello_world_internationalized时,我得到以下JSON作为响应:
{
"timestamp": "2018-10-03T14:27:27.765+0000",
"status": 500,
"error": "Internal Server Error",
"message": "No message found under code 'good.morning.message' for locale 'en'.",
"path": "/hello_world_internationalized"
}
这是配置代码:
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@Bean
public LocaleResolver localeResolver() {
AcceptHeaderLocaleResolver localeResolver = new AcceptHeaderLocaleResolver();
localeResolver.setDefaultLocale(Locale.US);
return localeResolver;
}
@Bean
public MessageSource bundleMessageSource() {
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setBasename("app_messages");
return messageSource;
}
}
和
public class HelloWorldController {
@Autowired
private MessageSource messageSource;
@GetMapping(path = "/hello_world_internationalized")
public String helloWorldInternationalized() {
return messageSource.getMessage("good.morning.message", null, LocaleContextHolder.getLocale());
}
}
我在Internet上进行了搜索,发现了一些话题,这些话题在谈论
但是我不知道在哪里放置这个配置标签。当我尝试创建Rest服务时,我将Web,rest服务和devtools用作我项目的依赖项。我也正在使用HATEOAS。 我还注意到,我显然没有配置这些内容所需的WEB-INF文件夹和web.xml文件。我在哪里可以创建这些文件夹和文件?
答案 0 :(得分:0)
确保在资源路径 app_messages_en.properties (用于区域设置的文件)和 app_messages.properties (用于默认区域设置的文件)文件>(src / main / resources) 还要在此文件中添加键值
good.morning.message=value of this key
将要本地化的值的键在每个文件中都必须相同,并且其值必须与它们对应的语言相对应。
答案 1 :(得分:0)
这看起来像服务器缓存问题,无法读取属性文件。 (虽然不确定)
我已通过在application.properties文件中启用DEBUG并重新启动服务器来解决了此问题。 logging.level.org.springframework =调试
它开始选择更改。