Thymeleaf:如果消息解析器失败,请将文本内容用作默认值

时间:2014-10-28 08:41:44

标签: spring spring-mvc thymeleaf

我最近开始在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;
}

1 个答案:

答案 0 :(得分:0)

消息源的useCodeAsDefaultMessage属性是防止代码映射的绝对异常的最后手段。 (如果MessageSource无法找到您的代码映射,则会抛出NoSuchMessageException)。它是用于开发和调试的,因此通常没有干净的方法来执行此操作,因为使用未在某处定义的消息代码不是一个好的做法。