Spring XML消息源,bean XML中的getMessage?
我已经设置了这样的资源:
locale\\messages
我的房产文件:
battle.name=TestBattle
我想在使用bean时到达文本“TestBattle”:
我想在此行中的propertyFile中重新发送消息
有没有办法做到这一点,而无需使用
getMessage("battle.name",...
java中的代码?
至少,你可以使用spel来做到这一点。
例如
但是,如果你需要翻译许多代码,这似乎很麻烦。
其他选项是使用String
to String
PropertyEditor
进行转换。
public class MessageSourcePropertyEditor extends PropertyEditorSupport { private MessageSourceAccessor messageSourceAccessor; public MessageSourcePropertyEditor(MessageSource messageSource) { this.messageSourceAccessor = new MessageSourceAccessor(messageSource); } @Override public void setAsText(String text) throws IllegalArgumentException { String value = text; if (text.startsWith("i18n:")) { value = messageSourceAccessor.getMessage(text.substring(5)); } setValue(value); } } public class MessageEditorRegistrar implements PropertyEditorRegistrar { private MessageSource messageSource; @Override public void registerCustomEditors(PropertyEditorRegistry registry) { registry.registerCustomEditor(String.class, new MessageSourcePropertyEditor(messageSource)); } public MessageSource getMessageSource() { return messageSource; } public void setMessageSource(MessageSource messageSource) { this.messageSource = messageSource; } }
并使用前缀i18n:来翻译代码,即