6.6.从错误代码到错误信息

优质
小牛编辑
126浏览
2023-12-01

6.6. 从错误代码到错误信息

我们已经讨论了数据绑定和校验。最后我们来讨论一下与校验错误相对应的错误信息输出。在先前的示例中,我们对nameage字段进行了校验并发现了错误。如果我们使用MessageSource来输出错误信息,当某个字段校验出错时(在这个例子中是name和age)我们输出的是错误代码。无论你直接或者间接使用示例中的ValidationUtils类来调用Errors接口中rejectValue方法或者任何一个其它的reject方法,潜在的实现不仅为你注册了你传入的代码,还同时为你注册了许多额外的错误代码信息。而你使用的MessageCodesResolver将决定究竟注册什么样的错误代码。默认情况下,将会使用DefaultMessageCodesResolver。回到前面的例子,使用DefaultMessageCodesResolver,不仅会为你注册你提供的错误代码信息,同时还包含了你传入到reject方法中的字段信息。所以在这个例子中,你通过rejectValue("age", "tooold")来注册一个字段校验错误。Spring不仅为你注册了tooold这个代码,同时还为你注册了tooold.agetooold.age.int来分别表示字段名称和字段的类型。

更多有关MessageCodesResolver的信息以及默认的策略可以在线访问相应的JavaDocs: MessageCodesResolver 和 DefaultMessageCodesResolver .