Skip to content

12. Voorbeeld 09B – Validatie van het model

De volgende toepassing is een variant op de vorige. Eerder, voor actie A:

  • het validatieregelsbestand A-validation.xml
  • het bestand met validatiefoutmeldingen heette A.properties

Hier, voor actie A van model M:

  • heet het validatieregelsbestand M-validation.xml
  • het bestand met de validatiefoutmeldingen heet M.properties
  • Het bestand A-validation.xml bestaat nog steeds, maar de inhoud ervan verwijst de validatieregels door naar het bestand M-validation.xml.

Dit zijn de enige wijzigingen die we ten opzichte van de vorige versie zullen aanbrengen.

Het NetBeans-project is als volgt:

  • in [1], de actie [FormInt] en het bijbehorende validatiebestand
  • in [2], het bijbehorende sjabloon [FormIntModel], het validatiebestand van dit sjabloon en de bijbehorende berichten.

Al het overige is identiek aan de vorige versie.

Het bestand [FormInt-validation.xml] ziet er als volgt uit:


<!--
<!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/voorbeeld-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>

We zullen de inhoud van dit bestand niet uitleggen. We nemen het zoals het is en houden de functionaliteit ervan in gedachten: de validatieregels naar het model verplaatsen. Je kunt je afvragen wat het nut hiervan is. In feite kunnen het model, de validatieregels en de meldingen al bestaan en door verschillende acties worden gebruikt. In plaats van dezelfde validatieregels en meldingen voor de verschillende acties te herhalen, is het dan beter om deze functionaliteiten aan het model te delegeren.

Het bestand [FormIntModel-validation.xml] is identiek aan het bestand [FormInt-validation.xml] uit de vorige versie.

Het bestand [FormIntModel.properties] is identiek aan het bestand [FormInt.properties] uit de vorige versie.

De lezer wordt uitgenodigd om deze nieuwe versie te testen.