Przejdź do treści
Strona główna » Spring w Akcji 2.10

Spring w Akcji 2.10

Spis treści | Spring w Akcji

  1. Deklarowanie reguł walidacji
  2. Walidowanie numeru karty

Deklarowanie reguł walidacji

Dla klasy Taco, chcesz się upewnić, że właściwość name nie jest pusta lub null oraz że lista wybranych składników ma co najmniej jeden element. Poniższy listing pokazuje zaktualizowaną klasę Taco, która używa @NotNull i @Size do zadeklarowania tych reguł walidacji.

Zauważysz, że oprócz wymagania, aby właściwość name nie była pusta, deklarujesz, że powinna ona mieć wartość o długości co najmniej 5 znaków.
Jeśli chodzi o deklarowanie walidacji na złożonych zamówieniach taco, musisz zastosować adnotacje do klasy Order. Dla właściwości adresu, chcesz jedynie mieć pewność, że użytkownik nie zostawi żadnego z pól pustych. W tym celu wykorzystasz adnotację @NotBlank klasy Hibernate Validator.
Walidacja pól płatności jest jednak nieco bardziej egzotyczna. Musisz nie tylko upewnić się, że właściwość ccNumber nie jest pusta, ale że zawiera wartość, która może być prawidłowym numerem karty kredytowej. Właściwość ccExpiration musi być zgodna z formatem MM/YY (dwucyfrowy miesiąc i rok). A właściwość ccCVV musi być trzycyfrową liczbą. Aby osiągnąć ten rodzaj walidacji, musisz użyć kilku innych adnotacji Java Bean Validation API oraz zapożyczyć adnotację walidacji z kolekcji adnotacji Hiber- nate Validator. Poniższy listing pokazuje zmiany potrzebne do walidacji klasy Order.

walidacja numer karty

Jak widać, właściwość ccNumber posiada adnotację @CreditCardNumber. Ta adnotacja deklaruje, że wartość właściwości musi być prawidłowym numerem karty kredytowej, który przechodzi kontrolę algorytmu Luhn (https://en.wikipedia.org/wiki/Luhn_algorithm). Zapobiega to błędom użytkownika i celowo złym danym, ale nie gwarantuje, że numer karty kredytowej jest rzeczywiście przypisany do konta lub że konto może być użyte do pobierania opłat.
Niestety, nie ma gotowej adnotacji do walidacji formatu MM/YY właściwości ccExpiration. Zastosowałem adnotację @Pattern, dostarczając jej wyrażenie regularne, które zapewnia, że wartość właściwości trzyma się pożądanego for- matu. Jeśli zastanawiasz się, jak rozszyfrować wyrażenie regularne, zachęcam do sprawdzenia wielu internetowych przewodników po wyrażeniach regularnych, w tym http://www.regular- expressions.info/. Składnia wyrażeń regularnych to mroczna sztuka i z pewnością wykracza poza zakres tej książki.
Wreszcie, właściwość ccCVV posiada adnotację @Digits, aby zapewnić, że wartość zawiera dokładnie trzy cyfry.
Wszystkie adnotacje walidacji zawierają atrybut message, który definiuje komunikat wyświetlany użytkownikowi, jeśli wprowadzane przez niego informacje nie spełniają wymagań zadeklarowanych reguł walidacji.

calculations

Pomocne linki

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *