java - Dropwizard:1.X - 我可以让跨参数方法验证工作吗?
问题描述
注解:
@Target({METHOD, CONSTRUCTOR, PARAMETER, FIELD})
@Documented
@Constraint(validatedBy = AtLeastOneNotNullValidator.class)
@Retention(RUNTIME)
public @interface AtLeastOneNotNull {
String message () default "{com.validationError}";
Class<?>[] groups () default {};
Class<? extends Payload>[] payload () default {};
String[] fieldNames();
}
验证器(目前总是false
故意返回):
@SupportedValidationTarget(ValidationTarget.PARAMETERS)
public class AtLeastOneNotNullValidator implements ConstraintValidator<AtLeastOneNotNull, String[]> {
private String[] fieldNames;
@Override
public void initialize(AtLeastOneNotNull constraintAnnotation) {
this.fieldNames = constraintAnnotation.fieldNames();
}
@Override
public boolean isValid(String[] value, ConstraintValidatorContext context) {
return false;
}
}
方法:
// within some class
@Valid
@AtLeastOneNotNull(fieldNames = {"userName", "companyName"})
private List<SomeObj> findAll(@Valid String userName, @Valid String companyName, String token) {...}
无论如何,我似乎无法让它发挥作用。我错过了什么?
解决方案
推荐阅读
- laravel - 我认为可以分解的控制器逻辑中的分解辅助
- python - ValueError:形状 (None, 9) 和 (None, 10) 不兼容
- python - cmake 无法在 conda 环境中找到 boost python
- c# - 跟踪、调试和信息消息未从 WorkerService 到达 App Insights
- haskell - 围绕 IO 创建一个包装器 Monad
- debugging - 在 VS Code 中使用 Docker-compose 调试 Odoo
- r - 将数据框中的所有数字列四舍五入为不同的位数
- javascript - Node/JavaScript 中的条件语句 - 超出调用堆栈大小
- python - 如何使用 min、max 和 sum 从一到百万求和?(循环中)
- winapi - 如何在 WINAPI 中获取 Windows 10 构建版本、修订号?