Skip to content

12. Esempio 09B – Convalida del modello

L’applicazione che segue è una variante della precedente. In precedenza, per l’azione A:

  • il file delle regole di convalida si chiamava A-validation.xml
  • il file dei messaggi di errore della convalida si chiamava A.properties

Qui, per l'azione A del modello M:

  • il file delle regole di convalida si chiama M-validation.xml
  • il file dei messaggi di errore della convalida si chiama M.properties
  • Il file A-validation.xml esiste ancora, ma il suo contenuto reindirizza le regole di convalida al file M-validation.xml.

Queste sono le uniche modifiche che apporteremo alla versione precedente.

Il progetto NetBeans è il seguente:

  • in [1], l’azione [FormInt] e il relativo file di validazione
  • in [2], il suo modello [FormIntModel], il file di convalida di tale modello e i messaggi associati a quest’ultimo.

Tutto il resto è identico alla versione precedente.

Il file [FormInt-validation.xml] è il seguente:


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

Non cercheremo di spiegare il contenuto di questo file. Lo prenderemo così com’è, tenendo presente la sua funzionalità: trasferire le regole di convalida sul modello. Ci si potrebbe chiedere a cosa serva. In realtà il modello, le sue regole di convalida e i suoi messaggi possono già esistere ed essere utilizzati da diverse azioni. Piuttosto che ripetere le stesse regole di convalida e gli stessi messaggi per le diverse azioni, è quindi preferibile delegare queste funzionalità al modello.

Il file [FormIntModel-validation.xml] è identico al file [FormInt-validation.xml] della versione precedente.

Il file [FormIntModel.properties] è identico al file [FormInt.properties] della versione precedente.

Si invita il lettore a provare questa nuova versione.