将代码解析为错误消息

我们介绍了数据绑定和验证。本节介绍输出对应于验证错误的消息。 在 上一节 显示的示例中,我们拒绝了 nameage 字段。 如果我们想使用 MessageSource 输出错误消息,我们可以使用我们在拒绝字段时提供的错误代码 (在本例中为 'name' 和 'age')来实现。 当你调用(直接调用,或间接通过使用例如 ValidationUtils 类调用)Errors 接口中的 rejectValue 或其他 reject 方法之一时,底层实现不仅会注册你传入的代码,还会注册许多其他错误代码。 MessageCodesResolver 确定 Errors 接口注册哪些错误代码。 默认情况下,使用 DefaultMessageCodesResolver,它(例如)不仅注册包含你给出的代码的消息, 还注册包含你传递给 reject 方法的字段名称的消息。 因此,如果你使用 rejectValue("age", "too.darn.old") 拒绝一个字段,除了 too.darn.old 代码外, Infra 还会注册 too.darn.old.age and too.darn.old.age.int (第一个包含字段名称,第二个包含字段类型)。 这样做是为了方便开发人员定位错误消息。

有关 MessageCodesResolver 和默认策略的更多信息,可以分别在 MessageCodesResolverDefaultMessageCodesResolver 的 javadoc 中找到。