一些关于 Spring 国际化的文章讲述了如何交换传递区域设置等的消息,但我只发现包含一些消息的用例..
我认为应该是:
resources
`-- messages
|-- validation
| |-- message_locale.properties
| `-- message_locale2.properties
|-- business
| |-- message_locale.properties
| `-- message_locale2.properties
`-- view
|-- message_locale.properties
`-- message_locale2.properties
OR:
resources
`-- messages
|-- validation
| |-- validation_locale.properties
| `-- validation_locale2.properties
|-- business
| |-- business_locale.properties
| `-- business_locale2.properties
`-- view
|-- view_locale.properties
`-- view_locale2.properties
您可以定义一个全局MessageSource
对于所有这些不同的消息文件。这种方法很实用,使用setBasenames
method:
@Bean
public MessageSource messageSource() {
ReloadableResourceBundleMessageSource messageSource =
new ReloadableResourceBundleMessageSource();
messageSource.setBasenames("classpath:/messages/business/message",
"classpath:/messages/validation/message",
"classpath:/messages/view/message");
return messageSource;
}
如果您的消息键在所有文件中都是唯一的,那么这种方法就有意义,例如business-12
key只存在于业务相关的消息源中。否则,最好定义一个MessageSource
每个上下文并根据您的上下文注入它们:
@Bean
public MessageSource businessMessageSource() {
ReloadableResourceBundleMessageSource messageSource =
new ReloadableResourceBundleMessageSource();
messageSource.setBasename("classpath:/messages/business/message");
return messageSource;
}
@Bean
public MessageSource validationMessageSource() {
ReloadableResourceBundleMessageSource messageSource =
new ReloadableResourceBundleMessageSource();
messageSource.setBasename("classpath:/messages/validation/message");
return messageSource;
}
@Bean
public MessageSource viewMessageSource() {
ReloadableResourceBundleMessageSource messageSource =
new ReloadableResourceBundleMessageSource();
messageSource.setBasename("classpath:/messages/view/message");
return messageSource;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)