我最近开始在Thymeleaf和Spring 4中使用i18n,因此:
<span th:text="#{foo.bar}">Foo Bar</span>
如果用户的区域设置不存在foo.bar
密钥,有没有办法让Thymeleaf实际显示“Foo Bar”?
这是我目前的配置:
@Bean
public MessageSource messageSource() {
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setBasenames("/WEB-INF/messages/messages");
messageSource.setUseCodeAsDefaultMessage(true); // anything equivalent?
messageSource.setDefaultEncoding("UTF-8");
messageSource.setCacheSeconds(0);
return messageSource;
}
答案 0 :(得分:0)
消息源的useCodeAsDefaultMessage属性是防止代码映射的绝对异常的最后手段。 (如果MessageSource无法找到您的代码映射,则会抛出NoSuchMessageException)。它是用于开发和调试的,因此通常没有干净的方法来执行此操作,因为使用未在某处定义的消息代码不是一个好的做法。