java - Bean验证1.1 : link violation to parameter

标签 java validation bean-validation jsr349

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

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

考虑一下当用户发布表单时我需要验证 Controller 方法调用。一旦我通过 validateParameters API 发现数据存在错误,我需要返回给用户,告诉用户您的 xxx 字段的值无效。我确实需要知道哪个参数值导致了特定的违规。

有什么想法吗?

最佳答案

所以答案就在 ConstraintViolation 里面,它有一个名为 propertyPath 的属性,类型为javax.validation.Path

每个路径都由 Node 列表组成。在节点列表中,有一个节点NodeImpl.ParamNodeImpl。如果您 toString() 参数节点实现,它会返回类似于 arg0arg1arg2 .. .而那些011对应的是失败的参数索引。

关于java - Bean验证1.1 : link violation to parameter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42645690/

相关文章:

jquery - 如何限制 "positive numbers"仅作为文本框的输入(仅允许 "-99")?

rest - 从Grails命令对象验证返回特定的HTTP错误代码

java - 接受字符串值列表的 Spring 验证

java - 如何计算标签的最大拟合字体大小?

java - java中执行方法检查时间并在特定时间执行方法

php - 如何在最大程度地减少重复的同时使用客户端和服务器端验证?

java - Spring Boot 类 Size 未找到 @Size(min=1,max=18)

java - Springfox Bean Validations @Size 注释在列表上无法正常工作

java - 我无法为 MySQL 加载 JDBC 驱动程序

java - Maven:如何覆盖依赖关系