java - 在应用自定义之前检查字段是否已经违反某些规则
问题描述
我有我的自定义验证注释,它是验证器。我不希望仅在字段不违反其他限制时才应用此自定义验证器。假设以下代码
class MyClass {
@NotNull
@Size(min = 10, max = 20)
@MyCustomVlidatorAnnotation
private String field;
}
我只想在field
不为空且大小在 [10, 20] 范围内时应用自定义验证器,否则跳过我的自定义验证器
解决方案
这可以使用@javax.validation.GroupSequence
.
@GroupSequence({ javax.validation.groups.Default.class, SecondPriorityCheck.class })
public interface ValidationSequence {
}
class MyClass {
@NotNull // by default belongs to group Default
@Size(min = 10, max = 20) // same here
@MyCustomVlidatorAnnotation(groups = SecondPriorityCheck.class)
private String field;
}
那么你必须调用验证器ValidationSequence
javax.validation.Validator validator = ..
MyClass instance = ..
validator.validate(instance, ValidationSequence.class)
推荐阅读
- ios - Swift 4:当用户单击 UiButton 时,如何获取在 UICollectionView 中选择的字符串?
- mysql - 具有固定值mysql的虚拟表
- sql - 错误:缺少表的 From- 子句条目
- jquery - 如何让日期范围选择器从可见输入输出值到单独的隐藏输入?
- sql - 增加连接表中的关联发生次数
- python - Python嵌套字典:计算父键的最大键数
- android - 无法在 Android 中使用 url.openConnection 或 Picasso 从 URL 获取图像
- c# - 如何在 Web 应用程序中处理一对多的实体框架乐观并发?
- android - 如何导出 Android Profiler CPU 使用率
- flowtype - Flow 不会为没有 @flow 的变量报告正确的类型