【发布时间】:2011-05-10 13:00:49
【问题描述】:
我正在使用 Spring MVC 3 和 JSR 303。我有一个表单支持对象,其中包含不同类型的 bean。根据请求参数值,我必须选择一个 bean 来验证和保存。我不能使用 @Valid 进行验证,因为要验证的 bean 直到运行时才知道。
我能够将javax.validation.Validator 注入控制器,但我不确定如何使用它验证 bean 并以“Spring 方式”将任何错误存储在 BindingResult/Error 中。
由于请求映射,我需要在处理程序方法中而不是 initBinder 方法中执行此操作。
[编辑]
validate(Object, Errors) 遇到的问题是它无法识别嵌套的 bean。通过 foo.getBar().getBean() 访问要验证的 bean,其中 foo 是表单支持对象。当我执行validate(foo.getBar().getBean(), errors) 时,我收到以下错误消息。
JSR-303 validated property 'property-name' does not have a corresponding accessor for Spring data binding
以前有人做过这样的事情吗?谢谢。
【问题讨论】:
标签: java spring-mvc bean-validation