15
A
उत्तर
14
यहाँ निर्भरता मैं उपयोग कर रहा हूँ (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>
11
नवीनतम निर्भरता:
<!-- BeanValidation and Hibernate Validator. -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.4.0.Final</version>
</dependency>
यह संक्रामक बीन मान्यता एपीआई को निर्भरता में खींचती है, तो आप अब ऐसा करने की जरूरत नहीं है:, आप जोड़ने की जरूरत हो सकती है अतिरिक्त सुविधाओं, अभिव्यक्ति भाषा और CDI समर्थन के लिए
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.1.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>
स्रोत: Hibernate Validator documentation
ये सभी Maven केंद्रीय रेपो में दोनों कर रहे हैं, ताकि आप JBoss रेपो जोड़ने की जरूरत नहीं है।
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());
}
}// validate()
Origin.Wise
JAXB के @XmlLocation Locator
की तरह कुछ है:
और btw यहाँ मेरी उदाहरण सुविधा विधि है।
नवीनतम [बीन सत्यापन 1.1] (http://beanvalidation.org/1.1/) संस्करण अद्यतन के लिए [अन्य उत्तर] (http://stackoverflow.com/a/17329473/642706) देखें। –