答案 0 :(得分:15)
以下是我正在使用的依赖项(使用Maven):
<dependencies>
<!-- Bean Validation API and RI -->
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.0.0.GA</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>4.0.2.GA</version>
</dependency>
</dependencies>
您可以从此存储库获取:
<repositories>
<repository>
<id>jboss</id>
<name>JBoss repository</name>
<url>http://repository.jboss.org/maven2</url>
</repository>
</repositories>
答案 1 :(得分:12)
截至2019年的依赖关系:
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.0.16.Final</version>
</dependency>
这可以将依赖性转移到Bean Validation API,因此您不再需要这样做了:
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.1.0.Final</version>
</dependency>
对于其他功能,表达式语言和CDI支持,您可能需要添加:
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.el</artifactId>
<version>3.0.1-b09</version>
</dependency>
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator-cdi</artifactId>
<version>6.0.16.Final</version>
</dependency>
来源:Hibernate Validator documentation
这些都在Maven Central Repo中,因此您无需添加JBoss仓库。
BTW这是我的示例便捷方法:
public static <T extends Object> void validate( T object ) throws MigrationException
{
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
Validator validator = factory.getValidator();
Set<ConstraintViolation<T>> valRes = validator.validate( object );
if( ! valRes.isEmpty() )
{
StringBuilder sb = new StringBuilder("Validation failed for: ");
if( object instanceof Origin.Wise )
sb.append( ((Origin.Wise)object).getOrigin() );
else
sb.append(object);
for( ConstraintViolation<T> fail : valRes)
{
sb.append("\n ").append( fail.getMessage() );
}
throw new IllegalArgumentException( sb.toString() );
}
}
Origin.Wise
类似于JAXB的@XmlLocation Locator
。
2013年(原帖)版本为:
<!-- BeanValidation and Hibernate Validator. -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.4.0.Final</version>
</dependency>
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.el</artifactId>
<version>3.0.1-b08</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator-cdi</artifactId>
<version>5.4.0.Final</version>
</dependency>
答案 2 :(得分:0)
from string import ascii_uppercase
import os
import errno
import itertools
try:
for name in next(os.walk("./Test/"))[1]:
summ = len(next(os.walk("./Test/"+name))[2])
os.chdir('./.__temp__/')
alpha= [(c) for c in ascii_uppercase]
for filename in os.listdir():
print(filename)
src = filename
dst = str(summ+1)+'.jpg'
for name in alpha:
os.rename(src,name+'-'+dst)
except OSError as e:
pass
Hibernate
是遵循javax.validation (validation-api)
的验证规则。验证规则需要JSR 380 Java Bean Validation Specification
才能根据验证规则执行验证。
并且有各种验证器,例如validator
(最受欢迎的验证器),hibernate
等。
Bval
是一种替代解决方案,我认为除了Bval
之外,它还很酷。在这里,您可以遵循我的替代解决方案:
Hibernate
创建静态验证器
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>
<dependency>
<groupId>org.apache.bval</groupId>
<artifactId>bval-jsr</artifactId>
<version>2.0.2</version>
</dependency>
你去!!!!。
同样,验证器只是一个验证器,您可以在其中轻松切换到其他验证器。
它不那么受欢迎,但是您会喜欢它的。