Siirry pääsisältöön

Jakarta Validation

Avaa ChatGPT:ssä

Java Bean Validation on laajalti tunnustettu standardiksi validointilogikan integroimiseksi Java-sovelluksiin. Se hyödyntää yhtenäistä lähestymistapaa validointiin sallimalla kehittäjien merkitä domain-mallin ominaisuuksia deklaratiivisilla validointirajoilla. Näitä rajoja noudatetaan ajonaikana, ja käytettävissä on sekä valmiita että käyttäjän määrittämiä sääntöjä.

webforJ integroituu saumattomasti Bean Validationiin JakartaValidator-sovittimen kautta, tarjoten vankkaa tukea suoraan käyttöön.

Asennus

On tarpeen lisätä yhteensopiva toteutus, kuten Hibernate Validator, luokkajuureen. Jos ympäristössäsi ei ole tätä toteutusta oletuksena, voit lisätä sen manuaalisesti käyttämällä seuraavia Maven-riippuvuuksia:

<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>8.0.1.Final</version>
</dependency>
<dependency>
<groupId>org.glassfish.expressly</groupId>
<artifactId>expressly</artifactId>
<version>5.0.0</version>
</dependency>

JakartaValidator

JakartaValidator-luokka toimii sovittimena yhdistäen webforJ-sidontakontekstin Jakarta Validationiin. Tämä integrointi mahdollistaa monimutkaisten validointisääntöjen käytön suoraan annotaatioiden avulla bean-luokassa.

JakartaValidator-aktiivointi

Voit aktivoida JakartaValidator:n koko kontekstissa käyttämällä tyypillisesti useJakartaValidator-parametria BindingContext:in rakentamisessa.

BindingContext<User> context = new BindingContext<>(User.class, true);

Rajoitusten määrittäminen bean-ominaisuuksille

Annotaatioihin perustuvat rajoitukset sovelletaan suoraan bean-luokassa validointiehtojen määrittämiseksi, kuten seuraavassa esimerkissä:

public class Hero {
@NotEmpty(message = "Nimi ei voi olla tyhjää")
@Length(min = 3, max = 20)
private String name;

@NotEmpty(message = "Määrittelemätön voima")
@Pattern(regexp = "Fly|Invisible|LaserVision|Speed|Teleportation", message = "Virheellinen voima")
private String power;

// hakijat ja asettajat
}

Tällaiset rajoitukset ovat yhtä tehokkaita kuin ohjelmallisesti määritetyt rajoitukset sidontainitialisoinnin aikana, mikä varmistaa johdonmukaiset validointitulokset.

varoitus

Tällä hetkellä JakartaValidator tunnistaa vain suoraan ominaisuuksiin liitetyt rajoitukset ja sivuuttaa kaikki validoinnit, jotka eivät ole suoraan yhteydessä ominaisuuksiin.