2017-03-07 52 views
1

ExecutableValidator.validateParameters API允许它验证方法调用的参数。BeanValidation 1.1:违反参数

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

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

有什么想法?

回答

2

所以答案是ConstraintViolation,其中有一个名为propertyPath属性里面,有型javax.validation.Path

每个路径是由与Node列表。在节点列表中,有一个节点NodeImpl.ParamNodeImpl。如果toString() param节点imp1,它返回的东西看起来像是arg0,arg1,arg2 ...和那些0,1,1对应于失败的参数索引。