Javaaprile 27th, 2009dinox
Chiunque abbia mai utilizzato Struts ed il suo Validator conosce di certo la potenza di tale mezzo. Mi sono trovato, però, a dover affrontare un problema poco documentato: la validazione dei campi indicizzati (indexed=”true”) di una form, in particolare nel momento in cui ogni riga della form è rappresentata da un proprio bean. La soluzione passa comunque per un paio di accorgimenti e l’indicazione di un attributo. Se ad esempio abbiamo una form rappresentata in questo modo:
<form-bean name="DoProductionProcessForm" type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="cliente" type="java.lang.String"/>
<form-property name="riferimento" type="java.lang.String"/>
<form-property name="righe" type="it.test.controller.form.ProcessRow[]"/>
</form-bean>
La validazione di un campo di ProcessRow (rappresentato dai metodi get/set) come dataInizio potrebbe essere la seguente:
<field depends="required,date" indexedListProperty="righe" property="dataInizio">
<arg0 key="label.dataInizio"/>
<var><var-name>datePatternStrict</var-name><var-value>dd/MM/yyyy HH:mm:ss</var-value></var>
</field>
struts, validator, validazione campi