我正在使用@Email注释来validation电子邮件地址。 我遇到的问题是它接受诸如ask@stackoverflow作为有效的电子邮件地址的东西。 我想这是因为他们想要支持Intranet地址,但我似乎无法find一个标志,所以它不检查扩展名。 我是否真的需要切换到@Pattern (以及任何对灵活的电子邮件模式的build议),还是我错过了一些东西?
我尝试用hibernatevalidation器编写非常简单的应用程序: 我的步骤: 在pom.xml中添加以下依赖项: <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>5.1.1.Final</version> </dependency> 编写代码: class Configuration { Range(min=1,max=100) int threadNumber; //… public static void main(String[] args) { ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); Validator validator = factory.getValidator(); Configuration configuration = new Configuration(); configuration.threadNumber = 12; //… Set<ConstraintViolation<Configuration>> constraintViolations = validator.validate(configuration); System.out.println(constraintViolations); } } 我得到以下stacktrace: Exception in thread "main" javax.validation.ValidationException: Unable to instantiate […]
我希望能够做到这样的事情: @Email public List<String> getEmailAddresses() { return this.emailAddresses; } 换句话说,我希望列表中的每个项目都被validation为一个电子邮件地址。 当然,注释这样的集合是不可接受的。 有没有办法做到这一点?
在Hibernate Validator 4.x中是否有实现(或第三方实现)的交叉字段validation? 如果不是,那么实现跨域validation器的最简洁的方法是什么? 例如,如何使用API来validation两个bean属性是否相等(如validation密码字段与密码validation字段匹配)。 在注释中,我希望如下所示: public class MyBean { @Size(min=6, max=50) private String pass; @Equals(property="pass") private String passVerify; }