Skip to content

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.