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