5.3 通过错误编码得到错误信息

前面我们谈到数据绑定和数据校验。如何拿到校验错误信息是我们最后需要讨论的一个问题。在上面的例子中, 我们拒绝了nameage属性。如果我们想要输出校验错误的提示信息,就要用到校验失败时设置的错误编码(本例中就是nameage)。 当你调用Errors接口中的rejectValue方法或者它的任何一个方法,它的优先实现不仅仅会注册作为参数传入进来的错误编码, 还会注册一些遵循一定规则的错误编码。注册哪些规则的错误编码取决于你使用的MessageCodesResolver。当我们使用默认的DefaultMessageCodesResolver 时,除了会将错误信息注册到你指定的错误编码上之外,这些错误信息还会注册到包含属性名的错误编码上。假如你调用这样一个方法rejectValue("age", "too.darn.old"), Spring除了会注册too.darn.old这个错误编码外,还会注册too.darn.old.agetoo.darn.old.age.int这两个错误编码(即一个是包含属性名,另外一个既包含属性名还包含 类型);这在Spring中作为一种约定,这样所有的开发者都能按照这种约定来定位错误信息了。

想要获取更多有关MessageCodesResolver和默认的策略,可以通过下面的在线文档获取: MessageCodesResolver DefaultMessageCodesResolver,

results matching ""

    No results matching ""