Bien, veamos algunos detalles.
Ya tengo levantado el proyecto, así que voy a rizar el nombre, por ejemplo, voy a quitar John, limpiamos
lo validad perfecto.
El campo nombre no puede ser vacío.
Bueno, acá falla porque tenemos 3, así que si colocamos, por ejemplo 12, no hay ningún problema.
Ya, pero el nombre.
Qué pasa si colocamos espacio en blanco?
Uno, dos, tres, cuatro o incluso uno solo enviar lo haría bien, incluso con uno enviar lo álida
bien, pero la idea es que lo valide, es decir, que rechace la validación y muestre el error.
Bueno, vamos al código para eso nos vamos a usuario validador y cambiamos en vez de regex if empty.
Acá también colocamos Ohr Espacios en blanco.
Esto acá le quitamos porque ya lo tenemos.
Y sería de esa forma, es decir, rechazar si es vacío o con espacios en blanco, guardamos.
Esperemos que se actualice.
Volvemos a probar.
Ahí tiene un espacio embiar y lo álida.
Voy a colocar más embiar perfecto.
Funciona bien, pero también se aplica al uso de anotaciones.
Por ejemplo, el Yussef.
También podría agregar 1, 2, 3 entre 3 y 8 4 y a 4.
Enviar.
Se fijan.
Pasa la validación, claro, porque está anotado con Not empty.
Y cómo lo podemos solucionar?
Usando anotaciones.
Vamos al código usuario es el Yussef.
Bueno, cambiamos en vez de empty sería Not Blanck.
Not black y not black.
Bueno, además de validarse, es distinto, nulo si contiene caracteres, además que no contenga espacio
en blanco.
Entonces reemplazamos por not blank.
Se fijan ahora podríamos tener ambas, pero el problema es que iba validad, va a valer dos veces.
Bueno, lo vemos, pero primero pedimos no blanca, guardamos, esperamos que se actualice.
En este caso es el Yussef Name.
El just en enviar no puede ser vacío.
Entonces lo alías.
Se fijan.
No puede estar vacío y además el tamaño tiene que estar entre 3 y 8.
Claro, porque hay dos espacio en blanco.
Colocábamos dos más.
Perfecto, no puede estar vacío.
Ahora, por eso se recomienda tener Not empty o Not Black, pero no ambos.
Por qué?
Porque por ejemplo, si colocamos Not blank y Not empty valida, los dos guardamos y al final se duplica
la validación.
Por ejemplo, enviar por ejemplo lo mismo enviar el Yussef es obligatorio.
El tamaño tiene que estar entre 3 y 8 y no puede estar vacío.
Se fija.
Enviar no puede estar vacío.
El tamaño tiene que estar entre 8, pero si no colocamos nada, se alía los tres valedores tanto en
ti como no!
Y por supuesto el 6 incluso.
Bueno, podríamos dejar estos dos Not Black Y6, pero incluso estaría correcto dejar solamente el 6,
porque el 6 también compara.
Se fijan, pero hoy tendremos un problema.
Por ejemplo, guardamos.
Esperemos que se actualice.
Enviar perfecto al día.
No hay nada, se valida entre 13 8, por ejemplo Andrés Perfecto.
Pero qué pasa si colocamos espacios en blanco?
Un, dos, tres.
También se valías?
Se fijan?
Si colocamos 2.
Hay tal error entre 3 y 8.
Entonces por eso también es recomendable utilizar Not blank.
Y lo podemos dejar de esa forma es hilar un poco más fino.
Bien, también podremos cambiar el mensaje error.
El código, por ejemplo, en vez de utilizar el mismo que utilizamos en la anotación Not Empty, podríamos
tener otro mensaje.
Pero un detalle solamente para que sepan el nombre que queramos.
Requerido usuario apunto nombre.
Lo voy a copiar.
Lo voy a pegar acá el mensaje properties.
El campo nombre es requerido.
Guardamos, esperemos que se actualice.
Me falto guardar.
Guardamos ahora que si guardamos usario validador, mensaje, punto properties.
Bien, ahora debería funcionar bien.
Enviar el campo nombre requerido, se fijan.
La riquerio.
Bien, veamos otro tema.
El controlador.
Otra alternativa.
En vez de utilizar de forma explícita en el código el validad, esto lo podríamos quitar o comentar.
En mi caso lo voy a comentar y lo vamos a automatizar para que se valide con la anotación valid de forma
trasparente, sin hacer nada en el procesar, sin una línea de código adicional.
Bueno, pero para eso tenemos que implementar y registrar este validador en el init Binter, es decir,
cuando se inicializa el proceso de validación y el proceso de pasar los datos al objeto usuario acá.
Pero eso se hace detrás de escena.
No lo vemos por debajo, lo hace framework es cuando se envía los datos formulario, el controlador
lo recibe los datos y lo puebla al objeto usuario y también lo valida.
Eso sería el inicializar el init 20's es de poblar, de poblar los datos del formulario y también validar.
Entonces anotamos init init pinder.
Inet Binder la ve con mayúscula.
Bien, un método, un método public void no retorna nada init binder o el nombre que queramos le vamos
a llamar igual inet Binter y recibe el web data binder, un objeto propio de princ lo importamos Ward
Data Binder Binter Binter punto buscamos acá Zeth valida ectos set valida ICTA.
Y lo registramos el validador y cambiamos validad y torpor validador que lo estamos inyectando.
Entonces lo inyectamos validador y lo pasamos acá por argumento, bueno, y justamente lo que hace es
validar, pero de forma transparente, nada más se registra este validador en el web data binder.
Una vez que se envían los datos desde el formulario, se pelan los datos y se valida.
Bueno, todo este proceso se maneja acá y acá registramos el validador.
Esto por debajo se maneja con interceptores.
Vamos a revisar, pero vamos a tener un problema enviar para validar.
Bueno, solamente está validando con usuario validador, pero todo lo que es anotacion se pierde y ya
no aceptaba aliando el username, password, el correo también el apellido.
Por ejemplo, si quitamos doe enviar se pierde, solamente está valiendo el nombre y el identificador,
pero nada más.
Por ejemplo 100 identificador colocábamos 123 enviar lo álida perfecto étodos bueno es porque están
en la clase validad ahora personalizada usuario validador bueno, pero cómo se puede corregir?
La idea es que aplique tanto validador con anotaciones tal como lo teníamos y también con la clase.
Bueno, el problema está acá en el Winder, está haciendo un set Valledor, por lo tanto al asignar
con Set lo que hace reemplazar el validador por defecto de las anotaciones con el nuevo validador usuario
validador, entonces solamente se aplica este valor la clase personalizada.
Bueno, cómo lo podemos solucionar?
En vez de set validador usamos add validad y tors en plural y listo.
Ese es todo el cambio.
Entonces con ADD lo que hace es agregar un nuevo alisador al stack.
El init Binter.
Esta anotación es un evento del ciclo de vida del controlador cuando se inicializa el Binter.
El Winder es como un portafolio donde se realizan el data binding para poner datos al objeto usuario
cuando se envía el formulario para validar para implementar filtros también.
En fin, es un stack de cosas y a esta stack le podemos agregar valor y esa la idea es agregar, no
modificar conceto.
Para que no se pierdan las anotaciones.
Mantengamos las dos guardamos.
Esperemos que se actualice el cambio.
Volvemos, enviamos enviar.
Ahora se que si se aplica a todo usando anotaciones y también la clase vale, ahora está molesto.
Está todo funcionando igual que antes, pero usando init tintes.
Otra alternativa.
Bueno, cuál es mejor de lo mismo?
Pueden utilizar la que más le gusta.
Lo que sí, la única ventaja del indep binder que desacoplar el validador validad del procesar del método
JANTES es transparente.
Pero eso es todo.
Una forma más explícita acá, o bien una forma más implícita acá, registrando el validar.
Pero insisto, cualquiera de las dos está perfecto.
Nos vemos en la siguiente clase.