Jakarta Validation
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.
Tällä hetkellä JakartaValidator
tunnistaa vain suoraan ominaisuuksiin liitetyt rajoitukset ja sivuuttaa kaikki validoinnit, jotka eivät ole suoraan yhteydessä ominaisuuksiin.