Badam podejście oparte na adnotacjach do sprawdzania poprawności fasoli szparagowej za pomocą spring modules. W this tutorial następujące fasoli (pobierające i ustawiające pominięte) służy jako przykład:Adnotacja na podstawie sprawdzania fasoli sprężynowej
public final class User {
@NotBlank
@Length(max = 80)
private String name;
@NotBlank
@Email
@Length(max = 80)
private String email;
@NotBlank
@Length(max = 4000)
private String text;
}
komunikat o błędzie, który jest używany, czy dana reguła sprawdzania poprawności jest nieposłuszny powinny następujący format:
bean-class.bean-propery[validation-rule]=Validation Error message
Przykłady klasy przedstawionym powyżej obejmują:
User.email[not.blank]=Please enter your e-mail address.
User.email[email]=Please enter a valid e-mail address.
User.email[length]=Please enter no more than {2} characters.
fakt, że klucze wiadomość zawierać nazwę klasy przedstawia kilka problemów:
- Jeśli klasa jest zmieniana, klawisze wiadomość również muszą być zmienione
Jeśli mam innej klasy (np Person) z usługą e-mail sprawdzaną identycznie jak User.email, muszę zduplikować wiadomości, np.
Person.email [not.blank] = Wprowadź swój adres e-mail.
Person.email [email] = Wprowadź poprawny adres e-mail.
Person.email [długość] = Wprowadź nie więcej niż {2} znaków.
W rzeczywistości, roszczenia dokumentację można skonfigurować domyślny komunikat dla danej reguły (np @Email) jak poniżej:
email=email address is invalid
Ten domyślny komunikat powinien być używany, jeśli bean- nie można znaleźć określonej wiadomości dla reguły. Jednak moje doświadczenie jest takie, że to po prostu nie działa.
Alternatywnym mechanizmem unikania duplikatów wiadomości jest przekazanie klucza komunikatu o błędzie do adnotacji reguły. Na przykład załóżmy, że mam zdefiniowane następujący komunikat o błędzie domyślny dla reguły @Email
badEmail=Email address is invalid
Komunikat ten powinien być używany, jeśli opisywanie odpowiednią usługę tak:
@Email(errorCode="badEmail")
private String email;
Jednak to próbowałem, i po raz kolejny, po prostu nie działa. Czy ktoś znalazł sposób uniknięcia powielania komunikatów o błędach podczas korzystania z tej struktury sprawdzania poprawności?
W konfiguracji Wiosna pokazanej powyżej, co to jest bean ConfigurationLoader? –
Witam Don - pobrałem kod źródłowy z wspomnianej strony samouczka, a configurationLoader jest już jednym z komponentów zdefiniowanych w ich pliku konfiguracyjnym xml. Kiedy wrócę do domu i spojrzę na kod, który napisałem, mogę zaktualizować to ogłoszenie. – toolkit
Element bean konfiguracjiLoader z samouczka jest typu org.springmodules.validation.bean.conf.loader.annotation.AnnotationBeanValidationConfigurationLoader – toolkit