Nelle lezioni scorse abbiamo presentato il metodo
validate() di un
ActionForm, che costituisce il punto nel quale vengono effettuati i controlli lato server sui dati immessi. Lo svantaggio di questa soluzione è che il codice di validazione è spesso duplicato nell'applicazione e un cambiamento delle regole di validazione implica una modifica ai sorgenti.
Per ovviare a questi problemi è stato sviluppato il
Validator, un componente del
Jakarta Commons Project, utilizzabile come un add-in di
Struts.
Tale soluzione fornisce gli strumenti per effettuare in modo automatico e dichiarativo i controlli formali sui campi digitati in un form HTML, purché i form bean dell'applicazione estendano la classe
ActionForm del
Validator stesso.
Il
Validator è costituito da un insieme di classi predisposte per eseguire tutti i più comuni controlli di validazione usati nelle applicazioni e supporta sia la validazione
server-side che quella
client-side. Per abilitare la validazione
client-side è sufficiente inserire nelle pagine
JSP dell'applicazione il tag:
< html:javascript formName="testForm"/ >
La configurazione delle routine di validazione avviene tramite un file di configurazione XML, quindi esternamente all'applicazione e facilmente modificabile al mutare delle esigenze applicative.
Nel file
validator-rules.xml vengono dichiarate tutte le routine di validazione disponibili, i loro nomi logici e il codice JavaScript, mentre nel
validation.xml si specifica come queste routine vengano applicate ai vari campi di input dei form dell'applicazione. Utilizzare il
Validator con
Struts significa eseguire i seguenti step:
- abilitare il Validator plug-in;
- configurare i due file XML appena citati, validator-rules.xml e validation.xml;
- creare form bean, che estendano gli ActionForm del Validator.
Per abilitare il
Validator bisogna aggiungere nello
struts-config.xml le seguenti righe:
< plug-in className="org.apache.struts.validator.ValidatorPlugIn">
< set-property property="pathnames" value="/WEB-INF/validator-rules.xml,
/WEB-INF/validation.xml"/>
< /plug-in>
Struts, all'avvio dell'applicazione, carica e inizializza il
Validator. Il
validator-rules.xml dichiara le routine di validazione messe a disposizione dal
Validator stesso. Esistono una serie di routine standard, che coprono la gran parte delle comuni esigenze per ciò che riguarda i controlli formali, ma
lo sviluppatore potrà comunque definire validazioni personalizzate per il caso specifico.
Nella prossima lezione passeremo all'analisi delle
action standard, tramite le quali il framework arricchisce le potenzialità messe a disposizione dello sviluppatore.