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.
