Sunteți pe pagina 1din 19

Conversin y validacin en JSF

M.B.W.

Como se realizan?

Los datos de un formulario son convertidos a objetos java y los resultados son comprobados y validados.

Diagrama

Conversion
El mecanismo de conversin est definido por el interfaz javax.faces.convert.Converter y sus mltiples implementaciones. Las conversiones aseguran que el tipo de un dato introducido en un formulario JSF sea el correcto, es decir, que el dato tipo cadena del formulario corresponde con el tipo JAVA esperado, y que est especificado en la propiedad correspondiente del bean. Los Conversores (implementaciones de la interfaz Converter) son los componentes que se encargan de hacer estas transformaciones (cadena>Tipo JAVA y viceversa). JSF invoca a los Conversores antes de efectuar las validaciones y por lo tanto antes de aplicar los valores introducidos a las propiedades del bean.

Conversion
En el caso de que un dato tipo cadena no se corresponda con el tipo JAVA apropiado, el Conversor correspondiente lanzar un ConversionException y el componente se marcar como invalidado.

Validacion
La validacin est definida por la interfaz javax.faces.validator.Validator y sus mltiples implementaciones. El proceso de validacin asegura que el dato introducido en el correspondiente componente es correcto segn la lgica de la aplicacin. El proceso de validacin ocurre antes de que el FrameWork asigne los valores introducidos en el formulario a las propiedades del bean y justo despus de que se hayan aplicado las conversiones, en el caso de que haya. Las validaciones aseguran que un dato introducido en un formulario JSF tenga un valor correcto.

Ejemplos de conversores de datos


<h:intputText id=cantidad value=#{pago.cantidad}> f:convertNumber minFractionDigits=2/> </h:intputText Formatea el valor actual con al menos dos dgitos despus de la coma. <h:inputText id=fecha value="#{pago.fecha}"> <f:convertDateTime pattern=MM/yyyy"/> </h:inputText>

Ejemplos de validadores de datos


<h:inputText required=true maxLength=3 value=#{articulo.precio}> <f:validateLongRange minimum=#{articulo.minPrecio} maximum=#{articule.maxPrecio/> </h:inputText>

Proceso
Valor demandado :

Usuario

Rellena Formulario

Servidor

Botn

Proceso
Valor tramitado
Validacin

Valores demandados

Objeto: como Valores locales

Todos los valores son Strings. El proceso de conversin transforma los Strings en los tipos de datos correspondientes.

Proceso

JSF primero convierte y valida todos los valores del usuario. Si encuentra errores : recarga la pagina. Si no hay errores : comienza la Actualizacin de los valores del modelo

Modelo de validacin
JSF permite definir restricciones sobre los valores de determinados datos introducidos por los usuarios. JSF proporciona validadores estndar. Se pueden definir ms validadores.

Mensajes de error
Es importante que el usuario pueda ver los mensajes de error causados por errores de conversiones y validaciones.
Atributo identificador: id Etiqueta: h:message <h:inputText id=cantidad value=#{pago.cantidad}> <h:message for=cantidad/}

Componentes grficas: Mensajes de errores del usuario


Incluye todos lo mensajes de error: <h:messages style=color: red /> Incluye mensajes de error de un componente: <h:message style="color: red for=direccionUsuario" /> <h:inputText id=direccionUsuario value="#{jsfexample.direccion} required="true"/>

Inclusin de mensajes
Fichero src/ArticulosMsgs.properties: ServerError=Request no terminado ClientError=Formulario sin completar

Inclusin de mensajes: Carga selectiva


Fichero Articles.jsp: <f:loadBundle basename=ArticulosMsgs var=artmsg/> <h:outputText value=#{artmsg.ServerError}/>

Inclusin de mensajes: Carga global


Fichero faces-config.xml: <resource-bundle> <base-name> ArticulosMsgs </base-name> <var>artmsg</var> </resource-bundle> Fichero Articles.jsp: <h:outputText value=#{artmsg.ServerError}/>

Parametrizacin de mensajes
Fichero de propiedades: Seleccin=El socio {0} ha sido seleccionado Fichero Socios.jsp: <f:loadBundle basename= var=sls/> <h:outputFormat value=#{sls.Seleccion}> <f:param value=#{socios.seleccion}/> </h:outputFormat> Permite cambiar el orden de las palabras en distintos idiomas.

S-ar putea să vă placă și