JSR349 BeanValidation 1.1标准定义了ExeutableValidator.validateParameters方法. 该API可以验证一个方法的参数是否有效. 这个方法返回一个ConstraintViolation的集合我现在遇到的问题是如何将集合中的ConstraintViolation元素和传递给validateParameters API的参数列表中的参数联系起来. 换句话说, 我希望知道是那个参数导致的violation.有人遇到过这种问题吗?
4 回答
德玛西亚99
TA贡献1770条经验 获得超3个赞
这个问题答案在ConstraintViolation中的propertyPath属性里面, 这个属性的类型是javax.validation.Path, 一个Path由多个节点组成, 其中有一个节点是NodeImpl.ParamNodeImpl, 把这个节点toString()的话会返回类似arg0, arg1, arg2这样的字串. 字串中的0, 1, 2就是参数的位置变量. 拿到这个变量, 我就可以推断出用户是那个form field出错了
慕婉清6462132
TA贡献1804条经验 获得超2个赞
虽然不知道你在说啥,但是我强答一下
for (ConstraintViolation c: paramters) {
System.out.println(c.getMessage());
}
- 4 回答
- 0 关注
- 500 浏览
添加回答
举报
0/150
提交
取消