BeanValidation 1.1:链接违规到参数

时间:2017-03-07 10:24:06

标签: java validation bean-validation jsr349

ExecutableValidator.validateParameters API允许它验证方法调用的参数。

但是当它返回一组ConstraintViolations时,如何将集合中的违规元素链接到特定参数(例如,通过索引)?

想想我需要在用户发布表单时验证控制器方法调用。一旦我通过validateParameters API发现数据中存在错误,我就需要通过说明xxx字段的值无效来回复用户。我确实需要知道哪个参数值导致了特定的违规行为。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

所以答案在ConstraintViolation内部,propertyPath有一个名为javax.validation.Path的属性,类型为Node

每个路径都由{{3}}列表组成。在节点列表中,有一个节点NodeImpl.ParamNodeImpl。如果toString() param node impl,它会返回类似arg0arg1arg2 ......以及01的内容,1对应于失败的参数索引。