27
apr

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>

, ,

Add reply