在這裏你去。這是不是很艱難。我將分享你的代碼來驗證一個字符串是一個有效的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) –