12. Przykład 09B – Walidacja modelu
Poniższa aplikacja jest odmianą poprzedniej. Wcześniej, dla akcji A:
- plik z regułami walidacji nosił nazwę A-validation.xml
- plik komunikatów o błędach walidacji nosił nazwę A.properties
W tym przypadku, dla akcji A modelu M:
- plik z regułami walidacji nosi nazwę M-validation.xml
- plik z komunikatami o błędach walidacji nosi nazwę M.properties
- Plik A-validation.xml nadal istnieje, ale jego zawartość przekierowuje reguły walidacji do pliku M-validation.xml.
Są to jedyne zmiany, jakie wprowadzimy w stosunku do poprzedniej wersji.
Projekt NetBeans ma następującą nazwę:
![]() |
- w [1], akcja [FormInt] i jej plik walidacyjny
- na [2], jego szablon [FormIntModel], plik walidacyjny tego szablonu oraz komunikaty powiązane z tym szablonem.
Wszystko pozostałe jest identyczne jak w poprzedniej wersji.
Plik [FormInt-validation.xml] ma następującą treść:
<!--
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//
EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
-->
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//
EN" "http://localhost:8084/przykład-09B/example/xwork-validator-1.0.2.dtd">
<validators>
<field name="model" >
<field-validator type="visitor">
<param name="appendPrefix">false</param>
<message/>
</field-validator>
</field>
</validators>
Nie będziemy próbować wyjaśniać zawartości tego pliku. Przyjmiemy go takim, jakim jest, pamiętając o jego funkcji: przeniesieniu reguł walidacji do szablonu. Można się zastanawiać, do czego to służy. W rzeczywistości model, jego reguły walidacji i komunikaty mogą już istnieć i być wykorzystywane przez różne akcje. Zamiast powtarzać te same reguły walidacji i komunikaty dla różnych akcji, lepiej jest zatem przekazać te funkcje modelowi.
Plik [FormIntModel-validation.xml] jest identyczny z plikiem [FormInt-validation.xml] z poprzedniej wersji.
Plik [FormIntModel.properties] jest identyczny z plikiem [FormInt.properties] z poprzedniej wersji.
Zachęcamy czytelników do przetestowania tej nowej wersji.
