【发布时间】:2011-05-11 06:53:57
【问题描述】:
在 Spring 中,经过验证后,我们会在 controller 中获得一个 BindingResult 对象。
很简单,如果我遇到验证错误,我想重新显示我的表单,并在每个受影响的字段上方显示错误消息。
所以要检查我的FormObject 的字段username 上的字段错误,我打电话:
FieldError usernameFieldError = bindingResult.getFieldError("username");
太好了,现在我持有一个 FieldError 对象,假设我使用的是 DefaultMessageCodeResolver,现在它包含类似 4 个可能的错误代码。
我如何从FieldError -> 一个用户可以消费的字符串?
我在我的 Web 应用程序上下文中定义了一个 MessageSource,因此我可以将单个错误代码映射到一条消息。
但有时默认消息会是最好的,有时我希望两个错误代码可能有相关的消息,所以我们需要选择最好的一个。
我使用什么方法来确定最佳可能的错误消息以针对字段错误显示?
- 是否需要编写一些算法来检查所有错误代码并从最具体的代码中进行选择?
- Spring 是否提供任何支持来帮助确定最具体的错误消息?
- 整个过程看起来如此漫长和复杂,我认为春天应该让这些事情变得简单。也许我不知何故完全偏离了基地?
【问题讨论】:
标签: java spring-mvc validation