Stacktrace

Java Bean Validation

, 2011-11-28

Java Bean Validation (JSR 303) definierar en meta-data-modell och ett API för validering av klasser. Implementationer av denna specifikation gör det möjligt att definiera och utföra validering med hjälp av annotationer eller xml. Exemplet nedan illusterar detta för ett användarnamn:

@NotNull
@Size(min = 5, max = 20)
@Pattern(regexp = "[a-zA-Z0-9\\._-]+")
private String userName;

Bean Validation är inte knutet till något speciellt ramverk eller lager. Det finns däremot bra stöd för Bean Validation i flertalet populära ramverk, såsom Hibernate och JSF 2. Dessutom är det enkelt att utföra validering via API:t:

import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;
...
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
Validator validator = factory.getValidator();
Set<ConstraintViolation<Customer>> constraintViolations = validator.validate(customer);

För att komma igång med ett Bean Validation (Hibernate Validator 4.x är referensimplementationen) i ett Maven-projekt lägg till följande beroenden i din pom:

<dependency>
 <groupId>org.hibernate</groupId>
 <artifactId>hibernate-validator</artifactId>
 <version>4.2.0.Final</version>
</dependency>
<dependency>
 <groupId>org.slf4j</groupId>
 <artifactId>slf4j-jdk14</artifactId>
 <version>1.6.1</version>
</dependency>

Används Hibernate eller JSF 2 räcker det oftast med att lägga till ovanstående beroenden så länge de finns tillgängliga i applikationens class path. Används JSF 2 går det till exempel att aktivera validering för ett inmatningsfält på följande sätt:

<h:inputText value="#{customer.age}">
  <f:validateBean/>
</h:inputText>

Bean validation stödjer dessutom validering av grupper som gör det möjligt att validera olika aspekter av ett objekt:

@Min(value=15, groups=AgeCheck.class)
private int age;

Stacktrace

Sök jobb hos oss:

Är du vass på frontend?

Läs mer

Cygni söker skarpa javautvecklare!

Läs mer

Cygni söker sylvassa .NET-utvecklare

Läs mer

Cygni är (som vanligt) Sveriges Bästa Arbetsplats!

Nu har det hänt igen! Cygni har för andra året i rad utsetts till Sveriges Bästa Arbetsplats! Utmärkelsen delas ut av Great Place To Work och baseras på deras världsledande medarbetarundersökning som besvaras av 10 miljoner människor på företag mer än 40 länder

Läs mer

Cygni tecknar ramavtal med Svenska Spel!

Svenska Spel har beslutat att teckna ramavtal med IT-konsultbolaget Cygni gällande systemutveckling. Sammanlagt fem leverantörer tilldelades ramavtal i denna kategori. Upphandlingen omfattar även Casino Cosmopol och avtalet löper initialt fram […]

Läs mer

Veckans Affärer: Cygni är ett Superföretag!

Veckans Affärer har utsett Cygni till ett av 2014 års Superföretag. Ungefär 0,6% av samtliga svenska aktiebolag klarar de kriterier som Veckans Affärer satt upp. Deras partner Bisnode går igenom […]

Läs mer