ZBLOG

No validator could be found for constraint 'javax.validation.constraints.Pattern' validating type 'java.lang.Integer'. Check configuration for 'gnum'

这个错误信息是指在验证类型为 java.lang.Integer 的字段时,校验器无法找到与该字段上定义的 @Pattern 注解匹配的验证器。这是因为 @Pattern 注解只适用于字符串类型的字段。

如果您想要对一个整数类型的字段进行正则表达式验证,可以使用 Hibernate Validator 提供的 @Digits 或者自定义注解来实现。例如:

@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = { GnumValidator.class })
public @interface Gnum {
    String message() default "Invalid gnum";
    Class<?>[] groups() default {};
    Class<? extends Payload>[] payload() default {};
}
public class GnumValidator implements ConstraintValidator<Gnum, Integer> {

    private static final Pattern pattern = Pattern.compile("\\d{7}");

    @Override
    public boolean isValid(Integer value, ConstraintValidatorContext context) {
        if (value == null) {
            return true;
        }
        String s = value.toString();
        return pattern.matcher(s).matches();
    }
}

在上述代码中,我们定义了一个名为 Gnum 的自定义注解,并且定义了一个名为 GnumValidator 的验证器类来执行整数类型字段上的正则表达式验证。您可以根据需要修改注解名称、错误消息和正则表达式等内容。

希望以上信息能够帮助您解决问题。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=2615

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?