SlideShare a Scribd company logo
1 of 15
Download to read offline
Eric Gustavo Coronel Castillo
gcoronelc.blogspot.com
gcoronelc@gmail.com
JAVA SERVER FACES
VALIDADORES Y
CONVERTIDORES
Temas
 Mensajes de error
 Convertidores
 Validación
MENSAJES DE ERROR
 Mostrar todos los mensajes de error:
<h:messages style="color: red" />
 Mensaje de error de una componente:
<h:outputText value="Dirección:" />
<h:inputText id="direc"
value="#{cliente.direccion}"
required="true" />
<h:message for="direc" style="color: red" />
MENSAJES DE ERROR
 Generación de un mensaje de error:
FacesMessage msg;
msg = new FacesMessage(FacesMessage.SEVERITY_ERROR,
"Error en el proceso.",
"La cuenta no tiene saldo suficiente");
FacesContext.getCurrentInstance().addMessage(null, msg);
CONVERTIDORES
 Una de los muchos mecanismos que nos proporciona JSF
de forma automática y casi transparente para el
desarrollador es el de la conversión.
 Es decir, convertir los campos introducidos en un formulario,
objetos tipo String, al tipo de objeto Java adecuado. Y de la
misma forma cuando se pinta la pagina necesitamos
convertir a String el valor correspondiente de los objetos de
nuestra aplicación.
 Se ejecutan antes de las validaciones.
CONVERTIDORES
 Un convertidor se utiliza para dar formato a un dato que se debe
mostrar al usuario.
– Por ejemplo, para mostrar una fecha se puede utilizar un
convertidor de formato de fecha a un formato mas común para
el usuario, como "DD/MM/YYYY".
 También se puede usar un convertidor en combinación con un
control de entrada.
– La entrada del usuario debe estar en el formato especificado
por el convertidor. Si el formato de la entrada no coincide en el
formato del convertidor se puede lanzar una excepción en el
convertidor que se muestra al usuario. El objeto asociado no se
actualiza hasta que se corrige el error.
CONVERTIDORES
 Conversores Estándares
BigDecimalConverter BigIntegerConverter
NumberConverter IntegerConverter
ShortConverter ByteConverter
CharacterConverter FloatConverter
DoubleConverter BooleanConverter
DateTimeConverter
CONVERTIDORES
Ejemplo 01 <h:panelGrid columns="3">
<h:outputLabel value="Nombre:"/>
<h:inputText id="nombre" value="#{empleado.nombre}"
required="true" requiredMessage="Nombre es obligatorio." >
</h:inputText>
<h:message for="nombre" errorStyle="color:red"/>
<h:outputLabel value="Salario:"/>
<h:inputText id="salario" label="Salario" value="#{empleado.salario}"
required="true" requiredMessage="Salario es obligatorio.">
<f:convertNumber type="number" pattern="###,##0.00" minFractionDigits="2" />
</h:inputText>
<h:message for="salario" errorStyle="color:red"/>
<h:outputLabel value="Activo:"/>
<h:selectBooleanCheckbox id="activo" value="#{empleado.activo}"/>
<h:outputText />
<h:commandButton action="#{empleado.doProcesar()}" value="Procesar"/>
</h:panelGrid >
En este caso el valor del control es
String y la propiedad
empleado.nombre tambien es de
tipo String.
En este caso el valor del control es
de tipo String yla propiedad
empleado.salario es de tipo double,
por lo tanto se debe hacer una
conversión.
En este la propiedad
empleado.activo es de tipo
boolean, también de realizar una
conversión.
CONVERTIDORES
Ejemplo 02
<h:panelGrid columns="3">
<h:outputLabel value="Fecha de Ingreso (dd-mm-yyyy)"/>
<h:inputText id="fechaIngreso" value="#{beanDatos.fechaIngreso}"
required="true" requiredMessage="Debe ingresar la fecha."
label="Fecha de Ingreso">
<f:convertDateTime pattern="dd-MM-yyyy" type="date" />
</h:inputText>
<h:message for="fechaIngreso" errorStyle="color:red"/>
<h:outputLabel value="Fecha de Ingressada:"/>
<h:outputText value="#{beanDatos.otraFecha}">
<f:convertDateTime type="date" dateStyle="full" />
</h:outputText>
<h:outputText />
<h:commandButton action="#{beanDatos.doProcesar()}" value="Procesar"/>
</h:panelGrid>
En este caso la fecha se debe
ingresar en formato dd-mm-yyyy
para que el convertidor lo pueda
reconocer.
En este caso se utiliza el convertidor
para mostrar un fecha con un
formato full.
CONVERTIDORES
Ejemplo 02 package jsf.beans;
import java.util.Date;
. . .
@ManagedBean(name="beanDatos")
@RequestScoped
public class BeanDatos{
private Date fechaIngreso;
private Date otraFecha;
// getters and setters
public void doProcesar(){
otraFecha = fechaIngreso;
}
}
Tenemos el managed
bean correspondiente al
Ejemplo 02.
VALIDACIÓN
 JSF permite validar el contenido de diferentes datos.
 Podemos usar el atributo validator para apuntar al método
de una bean que realiza validación.
 Los validadores se pueden registrar en las clases que
implementan EditableValueHolder.
 En caso de no cumplirse la validación han de lanzar
ValidatorException conteniendo un FacesMassage con el
error.
VALIDACIÓN
Validar Longitud
<h:outputLabel value="Nombre:"/>
<h:inputText
id="nombre" label="Nombre" value="#{empleado.nombre}"
required="true" requiredMessage="Nombre es obligatorio.">
<f:validateLength for="nombre" minimum="5" maximum="30"/>
</h:inputText>
<h:message for="nombre" errorStyle="color:red"/>
DEMO
https://goo.gl/v53pSS
Eric Gustavo Coronel Castillo
gcoronelc.blogspot.com
gcoronelc@gmail.com
JAVA SERVER FACES
Gracias

More Related Content

What's hot

Vector Search for Data Scientists.pdf
Vector Search for Data Scientists.pdfVector Search for Data Scientists.pdf
Vector Search for Data Scientists.pdfConnorShorten2
 
JavaScript - Chapter 14 - Form Handling
 JavaScript - Chapter 14 - Form Handling   JavaScript - Chapter 14 - Form Handling
JavaScript - Chapter 14 - Form Handling WebStackAcademy
 
PHP File Handling
PHP File Handling PHP File Handling
PHP File Handling Degu8
 
tmn - Introdução ao JavaScript
tmn - Introdução ao JavaScripttmn - Introdução ao JavaScript
tmn - Introdução ao JavaScriptClaudio Gamboa
 
State Management in ASP.NET
State Management in ASP.NETState Management in ASP.NET
State Management in ASP.NETShyam Sir
 
Curso HTML 5 - Aula com Formulários, Imagens, Áudio e Vídeo
Curso HTML 5 - Aula com Formulários, Imagens, Áudio e VídeoCurso HTML 5 - Aula com Formulários, Imagens, Áudio e Vídeo
Curso HTML 5 - Aula com Formulários, Imagens, Áudio e VídeoTiago Antônio da Silva
 
Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Bruno Grange
 
Lógica de Programação com Javascript - Aula #04
Lógica de Programação com Javascript - Aula #04Lógica de Programação com Javascript - Aula #04
Lógica de Programação com Javascript - Aula #04Ramon Kayo
 
Angular tutorial
Angular tutorialAngular tutorial
Angular tutorialRohit Gupta
 
Introduction to react_js
Introduction to react_jsIntroduction to react_js
Introduction to react_jsMicroPyramid .
 
Analytics for software development
Analytics for software developmentAnalytics for software development
Analytics for software developmentThomas Zimmermann
 
Introduction to JavaScript (1).ppt
Introduction to JavaScript (1).pptIntroduction to JavaScript (1).ppt
Introduction to JavaScript (1).pptMuhammadRehan856177
 
ASP.NET Web API
ASP.NET Web APIASP.NET Web API
ASP.NET Web APIhabib_786
 
DOMinando JavaScript
DOMinando JavaScriptDOMinando JavaScript
DOMinando JavaScriptThiago Poiani
 

What's hot (20)

Wpf Introduction
Wpf IntroductionWpf Introduction
Wpf Introduction
 
Vector Search for Data Scientists.pdf
Vector Search for Data Scientists.pdfVector Search for Data Scientists.pdf
Vector Search for Data Scientists.pdf
 
JavaScript - Chapter 14 - Form Handling
 JavaScript - Chapter 14 - Form Handling   JavaScript - Chapter 14 - Form Handling
JavaScript - Chapter 14 - Form Handling
 
PHP File Handling
PHP File Handling PHP File Handling
PHP File Handling
 
tmn - Introdução ao JavaScript
tmn - Introdução ao JavaScripttmn - Introdução ao JavaScript
tmn - Introdução ao JavaScript
 
State Management in ASP.NET
State Management in ASP.NETState Management in ASP.NET
State Management in ASP.NET
 
jQuery for beginners
jQuery for beginnersjQuery for beginners
jQuery for beginners
 
Curso HTML 5 - Aula com Formulários, Imagens, Áudio e Vídeo
Curso HTML 5 - Aula com Formulários, Imagens, Áudio e VídeoCurso HTML 5 - Aula com Formulários, Imagens, Áudio e Vídeo
Curso HTML 5 - Aula com Formulários, Imagens, Áudio e Vídeo
 
Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)
 
Lógica de Programação com Javascript - Aula #04
Lógica de Programação com Javascript - Aula #04Lógica de Programação com Javascript - Aula #04
Lógica de Programação com Javascript - Aula #04
 
Angular tutorial
Angular tutorialAngular tutorial
Angular tutorial
 
Javascript 101
Javascript 101Javascript 101
Javascript 101
 
.Net Core
.Net Core.Net Core
.Net Core
 
Introduction to react_js
Introduction to react_jsIntroduction to react_js
Introduction to react_js
 
Introdução CSS
Introdução CSSIntrodução CSS
Introdução CSS
 
Analytics for software development
Analytics for software developmentAnalytics for software development
Analytics for software development
 
Introduction to JavaScript (1).ppt
Introduction to JavaScript (1).pptIntroduction to JavaScript (1).ppt
Introduction to JavaScript (1).ppt
 
ASP.NET Web API
ASP.NET Web APIASP.NET Web API
ASP.NET Web API
 
Css
CssCss
Css
 
DOMinando JavaScript
DOMinando JavaScriptDOMinando JavaScript
DOMinando JavaScript
 

Viewers also liked

JAVA SERVER FACES - LECCION 02 - NAVEGACION Y LENGUAJES DE EXPRESIONES
JAVA SERVER FACES - LECCION 02 - NAVEGACION Y LENGUAJES DE EXPRESIONESJAVA SERVER FACES - LECCION 02 - NAVEGACION Y LENGUAJES DE EXPRESIONES
JAVA SERVER FACES - LECCION 02 - NAVEGACION Y LENGUAJES DE EXPRESIONESEric Gustavo Coronel Castillo
 

Viewers also liked (20)

Java Fundamentos 01 - Introducción
Java Fundamentos 01 - IntroducciónJava Fundamentos 01 - Introducción
Java Fundamentos 01 - Introducción
 
Manual de Open Shift
Manual de Open ShiftManual de Open Shift
Manual de Open Shift
 
JAVA SERVER FACES - LECCION 03 - COMPONENTES HTML
JAVA SERVER FACES - LECCION 03 - COMPONENTES HTMLJAVA SERVER FACES - LECCION 03 - COMPONENTES HTML
JAVA SERVER FACES - LECCION 03 - COMPONENTES HTML
 
JAVA SERVER FACES - LECCION 02 - NAVEGACION Y LENGUAJES DE EXPRESIONES
JAVA SERVER FACES - LECCION 02 - NAVEGACION Y LENGUAJES DE EXPRESIONESJAVA SERVER FACES - LECCION 02 - NAVEGACION Y LENGUAJES DE EXPRESIONES
JAVA SERVER FACES - LECCION 02 - NAVEGACION Y LENGUAJES DE EXPRESIONES
 
Git y GitHub
Git y GitHubGit y GitHub
Git y GitHub
 
Java Lambda
Java LambdaJava Lambda
Java Lambda
 
Java Web Lección 02 - JSP
Java Web Lección 02 - JSPJava Web Lección 02 - JSP
Java Web Lección 02 - JSP
 
SEMINARIO: ACCESO A BASE DE DATOS CON JDBC
SEMINARIO: ACCESO A BASE DE DATOS CON JDBCSEMINARIO: ACCESO A BASE DE DATOS CON JDBC
SEMINARIO: ACCESO A BASE DE DATOS CON JDBC
 
Java Web Lección 03 - MVC
Java Web Lección 03 - MVCJava Web Lección 03 - MVC
Java Web Lección 03 - MVC
 
JAVA OO - TEMA 01 - CLASES Y OBJETOS
JAVA OO - TEMA 01 - CLASES Y OBJETOSJAVA OO - TEMA 01 - CLASES Y OBJETOS
JAVA OO - TEMA 01 - CLASES Y OBJETOS
 
JAVA SERVER FACES - LECCION 01 - PRIMEROS PASOS
JAVA SERVER FACES - LECCION 01 - PRIMEROS PASOSJAVA SERVER FACES - LECCION 01 - PRIMEROS PASOS
JAVA SERVER FACES - LECCION 01 - PRIMEROS PASOS
 
Java OO: Introducción
Java OO: IntroducciónJava OO: Introducción
Java OO: Introducción
 
Validador y Lectores
Validador y LectoresValidador y Lectores
Validador y Lectores
 
Java OO Tema 04 Alcance de Clase
Java OO Tema 04 Alcance de ClaseJava OO Tema 04 Alcance de Clase
Java OO Tema 04 Alcance de Clase
 
Buenas Prácticas en el Desarrollo de Software
Buenas Prácticas en el Desarrollo de SoftwareBuenas Prácticas en el Desarrollo de Software
Buenas Prácticas en el Desarrollo de Software
 
JAVA 00 - TEMA 05 - HERENCIA
JAVA 00 - TEMA 05 - HERENCIAJAVA 00 - TEMA 05 - HERENCIA
JAVA 00 - TEMA 05 - HERENCIA
 
Java web Lección 04 - JSTL
Java web Lección 04 - JSTLJava web Lección 04 - JSTL
Java web Lección 04 - JSTL
 
Java OO - Tema 06 - Interfaces
Java OO - Tema 06 -  InterfacesJava OO - Tema 06 -  Interfaces
Java OO - Tema 06 - Interfaces
 
Java web 01 - servlets
Java web 01 - servletsJava web 01 - servlets
Java web 01 - servlets
 
Java Web 00 - Contexto
Java Web 00 - ContextoJava Web 00 - Contexto
Java Web 00 - Contexto
 

Similar to JAVA SERVER FACES - LECCION 04 - VALIDADORES Y CONVERTIDORES

Similar to JAVA SERVER FACES - LECCION 04 - VALIDADORES Y CONVERTIDORES (20)

Php
PhpPhp
Php
 
Formularios html
Formularios htmlFormularios html
Formularios html
 
Guía Practica de JavaScript
Guía Practica de JavaScriptGuía Practica de JavaScript
Guía Practica de JavaScript
 
Practicos script
Practicos scriptPracticos script
Practicos script
 
06 validación
06 validación06 validación
06 validación
 
Clases de php
Clases de phpClases de php
Clases de php
 
Eventos
EventosEventos
Eventos
 
4.Programación con PHP y MySQL
4.Programación con PHP y MySQL4.Programación con PHP y MySQL
4.Programación con PHP y MySQL
 
Samuel bailon sanchez
Samuel bailon sanchezSamuel bailon sanchez
Samuel bailon sanchez
 
Samuel bailon sanchez
Samuel bailon sanchezSamuel bailon sanchez
Samuel bailon sanchez
 
Samuel bailon sanchez
Samuel bailon sanchezSamuel bailon sanchez
Samuel bailon sanchez
 
Samuel bailon sanchez
Samuel bailon sanchezSamuel bailon sanchez
Samuel bailon sanchez
 
Presentación JavaScript
Presentación JavaScriptPresentación JavaScript
Presentación JavaScript
 
Actividad autónoma: Controles de validacion en ASP.NET
Actividad autónoma: Controles de validacion en ASP.NETActividad autónoma: Controles de validacion en ASP.NET
Actividad autónoma: Controles de validacion en ASP.NET
 
Ejemplos Para Dev C++
Ejemplos Para Dev C++Ejemplos Para Dev C++
Ejemplos Para Dev C++
 
JUG DAY FLEX / JEE
JUG DAY FLEX / JEEJUG DAY FLEX / JEE
JUG DAY FLEX / JEE
 
Aprendiendo php 3
Aprendiendo php 3Aprendiendo php 3
Aprendiendo php 3
 
Codigos para html
Codigos para htmlCodigos para html
Codigos para html
 
Java script
Java script Java script
Java script
 
Php1 sesión 6
Php1 sesión 6Php1 sesión 6
Php1 sesión 6
 

More from Eric Gustavo Coronel Castillo

EL MODELO DIRECTO DE DELL: TODO LO QUE HAY SOBRE LA INFORMACION
EL MODELO DIRECTO DE DELL: TODO LO QUE HAY SOBRE LA INFORMACIONEL MODELO DIRECTO DE DELL: TODO LO QUE HAY SOBRE LA INFORMACION
EL MODELO DIRECTO DE DELL: TODO LO QUE HAY SOBRE LA INFORMACIONEric Gustavo Coronel Castillo
 

More from Eric Gustavo Coronel Castillo (20)

Java Web JSTL
Java Web JSTLJava Web JSTL
Java Web JSTL
 
Model View Controller - MVC
Model View Controller - MVCModel View Controller - MVC
Model View Controller - MVC
 
JavaServer Page
JavaServer PageJavaServer Page
JavaServer Page
 
Java Web: Servlets
Java Web: ServletsJava Web: Servlets
Java Web: Servlets
 
Java Web - Presentación
Java Web - PresentaciónJava Web - Presentación
Java Web - Presentación
 
JAVA ORIENTADO A OBJETOS - EXCEPCIONES
JAVA ORIENTADO A OBJETOS - EXCEPCIONESJAVA ORIENTADO A OBJETOS - EXCEPCIONES
JAVA ORIENTADO A OBJETOS - EXCEPCIONES
 
JAVA ORIENTADO A OBJETOS - COLECCIONES
JAVA ORIENTADO A OBJETOS - COLECCIONESJAVA ORIENTADO A OBJETOS - COLECCIONES
JAVA ORIENTADO A OBJETOS - COLECCIONES
 
JAVA ORIENTADO A OBJETOS - ARREGLOS
JAVA ORIENTADO A OBJETOS - ARREGLOSJAVA ORIENTADO A OBJETOS - ARREGLOS
JAVA ORIENTADO A OBJETOS - ARREGLOS
 
JAVA ORIENTADO A OBJETOS - INTERFACES
JAVA ORIENTADO A OBJETOS - INTERFACESJAVA ORIENTADO A OBJETOS - INTERFACES
JAVA ORIENTADO A OBJETOS - INTERFACES
 
JAVA ORIENTADO A OBJETOS - HERENCIA
JAVA ORIENTADO A OBJETOS - HERENCIAJAVA ORIENTADO A OBJETOS - HERENCIA
JAVA ORIENTADO A OBJETOS - HERENCIA
 
JAVA ORIENTADO A OBJETOS - ALCANCE DE CLASE
JAVA ORIENTADO A OBJETOS - ALCANCE DE CLASEJAVA ORIENTADO A OBJETOS - ALCANCE DE CLASE
JAVA ORIENTADO A OBJETOS - ALCANCE DE CLASE
 
JAVA ORIENTADO A OBJETOS - SOBRECARGA
JAVA ORIENTADO A OBJETOS - SOBRECARGAJAVA ORIENTADO A OBJETOS - SOBRECARGA
JAVA ORIENTADO A OBJETOS - SOBRECARGA
 
JAVA ORIENTADO A OBJETOS - MIEMBROS DE CLASE
JAVA ORIENTADO A OBJETOS - MIEMBROS DE CLASEJAVA ORIENTADO A OBJETOS - MIEMBROS DE CLASE
JAVA ORIENTADO A OBJETOS - MIEMBROS DE CLASE
 
JAVA ORIENTADO A OBJETOS - CLASES Y OBJETOS
JAVA ORIENTADO A OBJETOS - CLASES Y OBJETOSJAVA ORIENTADO A OBJETOS - CLASES Y OBJETOS
JAVA ORIENTADO A OBJETOS - CLASES Y OBJETOS
 
Cursos Virtuales con Gustavo Coronel en UDEMY
Cursos Virtuales con Gustavo Coronel en UDEMYCursos Virtuales con Gustavo Coronel en UDEMY
Cursos Virtuales con Gustavo Coronel en UDEMY
 
JAVA ORIENTADO A OBJETOS - INTRODUCCIÓN
JAVA ORIENTADO A OBJETOS - INTRODUCCIÓNJAVA ORIENTADO A OBJETOS - INTRODUCCIÓN
JAVA ORIENTADO A OBJETOS - INTRODUCCIÓN
 
Buenas practicas para el Desarrollo de Software
Buenas practicas para el Desarrollo de SoftwareBuenas practicas para el Desarrollo de Software
Buenas practicas para el Desarrollo de Software
 
JAVA OO - TEMA 08 - COLECCIONES
JAVA OO - TEMA 08 - COLECCIONESJAVA OO - TEMA 08 - COLECCIONES
JAVA OO - TEMA 08 - COLECCIONES
 
EL MODELO DIRECTO DE DELL: TODO LO QUE HAY SOBRE LA INFORMACION
EL MODELO DIRECTO DE DELL: TODO LO QUE HAY SOBRE LA INFORMACIONEL MODELO DIRECTO DE DELL: TODO LO QUE HAY SOBRE LA INFORMACION
EL MODELO DIRECTO DE DELL: TODO LO QUE HAY SOBRE LA INFORMACION
 
ORACLE SQL
ORACLE SQLORACLE SQL
ORACLE SQL
 

Recently uploaded

Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfmasogeis
 
Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionarmando_cardenas
 
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...ITeC Instituto Tecnología Construcción
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3AlexysCaytanoMelndez1
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Opentix
 
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOSelenaCoronadoHuaman
 
Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTEREMMAFLORESCARMONA
 

Recently uploaded (7)

Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdf
 
Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacion
 
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200
 
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
 
Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTER
 

JAVA SERVER FACES - LECCION 04 - VALIDADORES Y CONVERTIDORES

  • 1. Eric Gustavo Coronel Castillo gcoronelc.blogspot.com gcoronelc@gmail.com JAVA SERVER FACES VALIDADORES Y CONVERTIDORES
  • 2. Temas  Mensajes de error  Convertidores  Validación
  • 3. MENSAJES DE ERROR  Mostrar todos los mensajes de error: <h:messages style="color: red" />  Mensaje de error de una componente: <h:outputText value="Dirección:" /> <h:inputText id="direc" value="#{cliente.direccion}" required="true" /> <h:message for="direc" style="color: red" />
  • 4. MENSAJES DE ERROR  Generación de un mensaje de error: FacesMessage msg; msg = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error en el proceso.", "La cuenta no tiene saldo suficiente"); FacesContext.getCurrentInstance().addMessage(null, msg);
  • 5. CONVERTIDORES  Una de los muchos mecanismos que nos proporciona JSF de forma automática y casi transparente para el desarrollador es el de la conversión.  Es decir, convertir los campos introducidos en un formulario, objetos tipo String, al tipo de objeto Java adecuado. Y de la misma forma cuando se pinta la pagina necesitamos convertir a String el valor correspondiente de los objetos de nuestra aplicación.  Se ejecutan antes de las validaciones.
  • 6. CONVERTIDORES  Un convertidor se utiliza para dar formato a un dato que se debe mostrar al usuario. – Por ejemplo, para mostrar una fecha se puede utilizar un convertidor de formato de fecha a un formato mas común para el usuario, como "DD/MM/YYYY".  También se puede usar un convertidor en combinación con un control de entrada. – La entrada del usuario debe estar en el formato especificado por el convertidor. Si el formato de la entrada no coincide en el formato del convertidor se puede lanzar una excepción en el convertidor que se muestra al usuario. El objeto asociado no se actualiza hasta que se corrige el error.
  • 7. CONVERTIDORES  Conversores Estándares BigDecimalConverter BigIntegerConverter NumberConverter IntegerConverter ShortConverter ByteConverter CharacterConverter FloatConverter DoubleConverter BooleanConverter DateTimeConverter
  • 8. CONVERTIDORES Ejemplo 01 <h:panelGrid columns="3"> <h:outputLabel value="Nombre:"/> <h:inputText id="nombre" value="#{empleado.nombre}" required="true" requiredMessage="Nombre es obligatorio." > </h:inputText> <h:message for="nombre" errorStyle="color:red"/> <h:outputLabel value="Salario:"/> <h:inputText id="salario" label="Salario" value="#{empleado.salario}" required="true" requiredMessage="Salario es obligatorio."> <f:convertNumber type="number" pattern="###,##0.00" minFractionDigits="2" /> </h:inputText> <h:message for="salario" errorStyle="color:red"/> <h:outputLabel value="Activo:"/> <h:selectBooleanCheckbox id="activo" value="#{empleado.activo}"/> <h:outputText /> <h:commandButton action="#{empleado.doProcesar()}" value="Procesar"/> </h:panelGrid > En este caso el valor del control es String y la propiedad empleado.nombre tambien es de tipo String. En este caso el valor del control es de tipo String yla propiedad empleado.salario es de tipo double, por lo tanto se debe hacer una conversión. En este la propiedad empleado.activo es de tipo boolean, también de realizar una conversión.
  • 9. CONVERTIDORES Ejemplo 02 <h:panelGrid columns="3"> <h:outputLabel value="Fecha de Ingreso (dd-mm-yyyy)"/> <h:inputText id="fechaIngreso" value="#{beanDatos.fechaIngreso}" required="true" requiredMessage="Debe ingresar la fecha." label="Fecha de Ingreso"> <f:convertDateTime pattern="dd-MM-yyyy" type="date" /> </h:inputText> <h:message for="fechaIngreso" errorStyle="color:red"/> <h:outputLabel value="Fecha de Ingressada:"/> <h:outputText value="#{beanDatos.otraFecha}"> <f:convertDateTime type="date" dateStyle="full" /> </h:outputText> <h:outputText /> <h:commandButton action="#{beanDatos.doProcesar()}" value="Procesar"/> </h:panelGrid> En este caso la fecha se debe ingresar en formato dd-mm-yyyy para que el convertidor lo pueda reconocer. En este caso se utiliza el convertidor para mostrar un fecha con un formato full.
  • 10. CONVERTIDORES Ejemplo 02 package jsf.beans; import java.util.Date; . . . @ManagedBean(name="beanDatos") @RequestScoped public class BeanDatos{ private Date fechaIngreso; private Date otraFecha; // getters and setters public void doProcesar(){ otraFecha = fechaIngreso; } } Tenemos el managed bean correspondiente al Ejemplo 02.
  • 11. VALIDACIÓN  JSF permite validar el contenido de diferentes datos.  Podemos usar el atributo validator para apuntar al método de una bean que realiza validación.  Los validadores se pueden registrar en las clases que implementan EditableValueHolder.  En caso de no cumplirse la validación han de lanzar ValidatorException conteniendo un FacesMassage con el error.
  • 12. VALIDACIÓN Validar Longitud <h:outputLabel value="Nombre:"/> <h:inputText id="nombre" label="Nombre" value="#{empleado.nombre}" required="true" requiredMessage="Nombre es obligatorio."> <f:validateLength for="nombre" minimum="5" maximum="30"/> </h:inputText> <h:message for="nombre" errorStyle="color:red"/>
  • 13. DEMO
  • 15. Eric Gustavo Coronel Castillo gcoronelc.blogspot.com gcoronelc@gmail.com JAVA SERVER FACES Gracias