【发布时间】:2015-05-26 13:50:53
【问题描述】:
我已经声明了一个组件
@Component
public class I18nManagerImpl implements I18nManager{
@Autowired
MessageSource messageSource;
public ResourceBundle getResourceBundle() {
Locale fromConfig = Locale.UK;
//Resolve Locale from a configuration service
return new MessageSourceResourceBundle(messageSource, fromConfig); //replace code in my question
}
@Override
public String message(String locale) {
ResourceBundle beanResourceBundle = getResourceBundle();
String invalidEmail = beanResourceBundle.getString("invalidEmail");
return invalidEmail;
}
}
而messageSource bean 定义在applicationContext.xml 是
<bean id="messageSource"
class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basenames" value="messages"/>
</bean>
但是找不到消息,如果用调试器查找由 getResourceBundle 键返回的 ResourceBundle 为 null 并且没有内容。
提供的代码有什么问题? 这是项目结构图:
【问题讨论】:
-
你可以尝试编辑:
-
你为什么用这个?为什么不简单地使用可用的默认支持?有什么特别需要你自己定制的
I18nManagerImpl -
@Arpit 不工作,结果相同。
-
@M.Deinum 你能举个例子吗?我将自定义以增加灵活性,启用缓存并提供方便的方法来访问某些不使用原始字符串的翻译,
-
您的包含属性文件的文件夹是“messages”或“Resource Bundle”还是“Resource Bundle 'messages'”?
标签: java spring resourcebundle properties-file