在这里你去。这是不是很艰难。我将分享你的代码来验证一个字符串是一个有效的IP地址:
你需要写为验证注解,你需要写一个具体的校验实现:
以下是你可以在特定领域使用验证器要验证注释类:
@Target({ FIELD})
@Retention(RUNTIME)
@Constraint(validatedBy = InetAddressValidator.class)
@Documented
public @interface ValidIP {
String message() default "{ValidIP.message}";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
现在,您需要写一个具体的验证器实现a S下:
public class InetAddressValidator implements ConstraintValidator<ValidIP, String> {
private static final Pattern IPV4_PATTERN =
Pattern.compile("^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.");
public boolean isValid(String value, ConstraintValidatorContext context) {
if (!(CommonUtility.isNullOrEmpty(value) || IPV4_PATTERN.matcher(value).matches()))
{
return false;
}
return true;
}
public void initialize(ValidIP parameters) {
}
}
可以包括在现场这个注解,如:
@ValidIP(message = "Enter a valid IP address")
private String ip;
不是这将绑定时间工作时,弹簧会尝试将表单参数映射到豆。
只要指出,isValid方法是需要有逻辑来检查有效性的方法。
initialize方法是在调用isValid之前用于执行任何初始化的方法。
试试这个,如果你仍然需要你的定制问题的帮助,让我知道我可能有一些时间为你写。
不用客气 – dharam
我需要验证控制器级别的对象。如同在控制器上一样,您可以编写用于验证对象的“@valid”注释。我想自定义“@Valid”注释SI,如果我给你“@Valid”中的控制器(类型=“草案”),那么它应该验证只卷号和ID,如果我给你“@Valid”(类型='保存'),那么它应该验证学生的属性。 – user1183194
你会然后把一组草案(基本上是空的标记类调用草案)对所有的验证注解卷号和ID的验证注解,并且所有的组,使用支持团体春特定的验证注解验证 - @Validated(Draft.class) –