1

所以,我相当肯定这仅仅是因为我自己缺乏对 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 调用并单独获取该捆绑包值,但如果我可以避免这种情况,我会更喜欢它。

4

1 回答 1

1

除了您已经建议的方法之外,想不出任何其他方法 - 再次调用 messageSource:

BadParsingFormat={0} should fall betweeen {1} and {2}
pointTop=The top coordinate
pointLeft=The left coordinate

带代码

   String error = messageSource.getMessage("BadParsingFormat",
            new Object[]{
                    messageSource.getMessage(exception.getVariableName(),null, null),
                    exception.getLowerBound(),
                    exception.getUpperBound()
            });
于 2012-09-18T02:23:38.073 回答