- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
在 Spring 中,验证后我们在 controller
中得到一个 BindingResult
对象。
很简单,如果我收到验证错误,我想重新显示我的表单,并在每个受影响的字段上方显示错误消息。
因此,为了检查我的 FormObject
字段 username
上的字段错误,我调用:
FieldError usernameFieldError = bindingResult.getFieldError("username");
太好了,现在我持有一个 FieldError
对象,假设我使用的是 DefaultMessageCodeResolver
,它现在包含大约 4 个可能的错误代码。
如何从 FieldError
-> A string that is consumable to the user?
我在我的 Web 应用程序上下文中定义了一个 MessageSource
,因此我可以将单个错误代码映射到一条消息。
但有时默认消息会是最好的,有时我希望其中两个错误代码可能有相关消息,因此我们需要选择最好的一个。
我使用什么方法来确定为字段错误呈现的最佳可能错误消息?
最佳答案
正如您所猜测的那样,您正在让自己变得比需要的更难。 FieldError
对象本身就是一个 MessageSourceResolvable
。您不需要从中获取代码,然后手动将各个代码带到您的消息源并继续查找。您可以将它传递给您的 MessageSource
,它会找到最具体的一个具有在您的语言环境中定义的翻译。 (假设您的代码解析器以正确的顺序放置它们。)
但在大多数情况下,您甚至不需要这样做。通常不需要将 Errors
放在支持对象上并自行翻译。 jsp 库中的 form
命名空间提供了一个为您查找错误消息的标记。您需要做的就是将 Errors
放入 ModelMap
中。查看文档:
关于java - Spring : How to resolve a validation error -> error code -> error message,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4202437/
我是一名优秀的程序员,十分优秀!