5
我需要使用註釋+正則表達式來驗證電子郵件。我試圖用以下幾點:註釋&正則表達式
@NotNull
@Pattern(regexp="[email protected]+\\.[a-z]+")
private String email;
不過,我不知道如何打印錯誤消息時,我有在電子郵件字段中的電子郵件地址不正確。有任何想法嗎?
我需要使用註釋+正則表達式來驗證電子郵件。我試圖用以下幾點:註釋&正則表達式
@NotNull
@Pattern(regexp="[email protected]+\\.[a-z]+")
private String email;
不過,我不知道如何打印錯誤消息時,我有在電子郵件字段中的電子郵件地址不正確。有任何想法嗎?
首先,您應該爲您的Pattern
註釋添加message
屬性。 假設你的郵件變量是一些類用戶的一部分:
class User{
@NotNull
@Pattern(regexp="[email protected]+\\.[a-z]+", message="Invalid email address!")
private String email;
}
那麼你應該定義一個驗證:
ValidatorFactory vf = Validation.buildDefaultValidatorFactory();
Validator validator = vf.getValidator();
User user = new User();
user.setEmail("[email protected]");
Set<ConstraintViolation<User>> constraintViolations = validator
.validate(user);
然後找到驗證錯誤。
for (ConstraintViolation<Object> cv : constraintViolations) {
System.out.println(String.format(
"Error here! property: [%s], value: [%s], message: [%s]",
cv.getPropertyPath(), cv.getInvalidValue(), cv.getMessage()));
}
如上評論提到:
@NotNull
@Email(message = "This email address is invalid")
private String email;
這取決於你怎麼做驗證和要打印的消息。簡單的回答:'System.out.println(...)':) – Thomas 2012-04-02 14:25:42
對不起,但爲什麼你不使用@Email註釋? – Peterino 2013-09-20 15:14:26