class employee{
...
private long phone;
...
}
我想使用 spring jsr303 validator 验证电话号码,在我的 Controller 中我使用@valid。我通过使用放置在错误消息属性文件中的通用 typeMismatch 成功验证输入的值是数字还是字符串。
但我想验证输入的数字格式是否正确。(@pattern 仅适用于字符串)
如何实现这一点,请建议我。
最佳答案
通常电话号码是字符串,您可以使用@Pattern进行验证,但如果您想验证任何字段,您可以这样做。
自定义注解Javax validator
@javax.validation.Constraint(validatedBy = { PhoneNumberConstraintValidator.class })
@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER })
@Retention(RUNTIME)
public @interface ValidPhoneNumber {
}
public class PhoneNumberConstraintValidator implements ConstraintValidator<ValidPhoneNumber, Long> {
@Override
public void initialize(final ValidPhoneNumber constraintAnnotation) {
// nop
}
@Override
public boolean isValid(final Long value, final ConstraintValidatorContext context) {
//your custom validation logic
}
}
class employee{
...
private long phone;
@ValidPhoneNumber
public Long getPhone() { return phone; }
...
}
或者如果您有 hibernate validator ,则更简单,您可以在实体类中添加此方法。
@org.hibernate.validator.AssertTrue
public boolean validatePhoneNumber() { }
关于java - 如何在 spring mvc 中验证整数或长整型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32113874/