所以,我相当肯定这仅仅是因为我自己缺乏对 Spring 和 Java 中如何发生各种消息解析/插值的理解,我想要什么:
InternationalMessages.properties
BadParsingFormat={{0}} should fall betweeen {1} and {2}
pointTop=The top coordinate
pointLeft=The left coordinate
APIEndPoint.java
// Standard implementation and wiring of message source
@Autowired
MessageSource messageSource;
public void someMethod(String somethingToParse) {
String parsed;
try {
parsed = SomeKindOfParser.parse(somethingToParse);
}
catch(BadParsingFormatException exception) {
String error = messageSource.getMessage("BadParsingFormat",
new Object[]{
exception.getVariableName(),
exception.getLowerBound(),
exception.getUpperBound()
});
// Do something useful with this error message
}
}
在这个俗气的例子中,exception.getVariableName()
将返回pointTop
或返回。pointLeft
我还想进一步解析/插入这些特定名称,但我似乎无法完成。我知道我可以使用另一个 messageSource 调用并单独获取该捆绑包值,但如果我可以避免这种情况,我会更喜欢它。