dimarts, 3 d’agost del 2010

Facelets i JSF 2.0 - Creació d'un formulari - Part VII - Validació del formulari

Tal i com vàrem dir en l'anterior post , l'aplicatiu que estem dissenyant ha de poder validar o comprovar que l'usuari ha introduït correctament les dades en els camps del formulari. És a dir, cal un mecanisme que no permeti l'enviament del formulari fins que tots els camps (o almenys aquells que siguin expressament requerits) hagin estat omplerts i de forma correcte.
Hi ha diverses maneres de duu a terme aquesta tasca: podriem crear un métode en el nostre managed bean que, vinculat al camp corresponent del formulari, s'encarregués de comprovar i validar les dades que si han introduït. Per exemple, el típic camp que ens demana que introduïm una adreça de correu electrònic, hauria de tenir un métode que comprovés si realment hem escrit una adreça de correu (comprovar l'existència del símbol @).
En aquest cas hauriem de crear el que s'anomena un validador, una classe o bé un métode que compara les dades introduïdes amb un determinat patró.

D'altra banda, existeix un mecanisme molt senzill per comprovar que l'usuari no ha deixat cap camp en blanc i impedir que les dades del formulari siguin enviades i processades: la propietat required. Aquesta propietat forma part del conjunt de propietats que podem assignar a un component HTML d'entrada de dades com per exemple una caixa de text. Aquesta propietat accepta un valor de tipus booleà. Si el valor és true, es duu a terme la comprovació pel camp al qual hem assignat aquesta propietat. Quan l'usuari premi el botó d'enviament del formulari, si hi ha cap camp en blanc ens apareixerà un missatge avisant-nos de  que és necessari un valor per aquest camp. Un exemple podria ser el següent:

<h:inputText value="#{bean.nom}" id="nom" required ="true"/>
Una altra propietat que va unida amb la required és la requiredMessage i ens permet definir un missatge personalitzat que informi a l'usuari de l'error que s'ha produït.

<h:inputText value="#{bean.nom}" id="nom" required="true" requiredMessage="És necessari omplir aquest camp"/>

Resumint, per assegurar-nos que tots els camps han estat omplerts correctament, hauriem d'incloure la propietat required (establerta a true, obviament) a cadascun d'ells. En properes entrades aprofundirem una mica més en aquest aspecte i coneixerem altres formes de  validació.

Gràcies.