Continuemos.
Veamos otra forma de implementar una validación personalizada, pero utilizando anotaciones como por
ejemplo si nos vamos a usuario acá tenemos not empty.
Bueno, podemos implementar algo muy similar a esto acá, pero personalizado por ejemplo para validar
alguna expresión regular sin utilizar pattern, sino de forma más programática o validar cogé, cosa
también similar a como lo hicimos acá también, pero con anotaciones en un atributo, en un campo.
Bueno, esta anotación se aplica a atributos, pero se pueden reutilizar en varios atributos, igual
que acá.
Igual que nos blank el 6 not empty, podemos tener varias validaciones not empty en diferentes atributos.
Bueno, acá también se aplica exactamente igual.
Bien, comencemos.
Lo primero es crear una anotación.
La podemos crear en valid mechon por acá vamos a crear una nueva anotación li derecho new anoté schön.
Le damos un nombre por ejemplo identificador regex.
Identificador RegEx.
Ven, vamos a agregar el retrataron.
Bueno, está marcado por defecto a retencion lo dejamos en ralenti, es decir, se ejecuta en tiempo
de ejecución.
Ahí se resuelve y se implementa esta anotación en el atributo target.
Bueno, donde en el atributo marcamos atributo field y marcamos método, ambos se implementan ya sea
para validar un método.
Por ejemplo nyet, un campo y listo.
Finalizar.
Del momento lo dejamos así.
Ahora tenemos que crear nuestra clase, validará.
Ahora, si se fijan en los import.
Acá están todas las anotaciones de Yaba.
Bien, lo siguiente crear nuestra clase new class.
Le vamos a llamar igual, pero validador.
Identificaros regex validador.
Pero también el nombre que quieran finalizar.
Acá tenemos que implementar una interfaz simplement con constraint válida itor
importamos de VAX en palidecieron de abaxo perfecto.
Acá nos pide implementar métodos, pero antes teníamos que agregar acá generic tipo genérico.
Es decir, esta validación se aplicar a qué anotacion es para enlazar una anotación que ya la tenemos
con este validador.
Entonces copiamos el nombre de esta anotación y la pegamos acá.
Y el tipo de dato del campo que vamos a validar, por ejemplo, vamos a validar identificador del tipo
String.
Ahora sí, sobre el error, porque tenemos que implementar métodos de la interfaz del contrato IS Baley.
Bueno, acá implementamos es súper simple, retorna true si se valida bien, Ford si se valida mal,
pero bueno, la validación del regex del identificador la tenemos acá, entonces podemos copiar TIFF,
lo copiamos completo hasta acá y lo pegamos acá.
Sobre el ratón fours ya vamos a quitar el distinto, el distinto lo quitamos en vez de usuario get identificado
sería value.
El atributo que se va a validar bueno value corresponde al identificador entonces value punto matches.
Bueno, si esto es true, perfecto, cierto, se cumple.
Retornamos true si no se cumple.
Bueno, no pasa nada.
Retornemos fols.
Acá podría haber un else, pero como estamos retornando acá si no se cumple, bueno, retornamos después
del if.
Guardamos bien lo siguiente.
Ahora tenemos que enlazar esta anotación.
Esta anotación identifica RegEx en la sala con esta clase.
Entonces, por acá una anotación con Strait de Bugs Valid echan paréntesis el atributo validado por
llega colocamos la clase en nombre, podríamos copiar el nombre.
Lo pegamos acá, punto, clase guardamos, pero bien, eso no es todo.
También tengo que agregar algunos atributos a esta anotación.
Por ejemplo, el mensaje error.
Pero bueno, una forma bien simple y rápida de hacer esto.
Nos vamos al usuario, por ejemplo y con control click a cualquier anotación a not empty o not blank
o 6 cualquiera, por ejemplo, not empty, control click y copiamos estos tres métodos.
Mensaje grupo y el pailebot que ha requerido es parte de esta estación de validación.
Entonces simplemente se copia.
Y lo pegamos acá.
Acá podemos dar un valor por defecto, un mensaje.
Por ejemplo, identificador
inválido, identificador inválido y guardamos lo otros atributos groups y pelot por defecto, grups
para agrupar valedores.
Pero bien, esta sería la configuración por defecto simple.
Ahora lo siguiente bueno es aplicar esta anotación.
Entonces, por ejemplo, si nos vamos al usuario, podríamos anotar ahora con nuestro validador usuario
identificador reyes y listo.
Nada más.
Así de simple.
Recuerden que si queremos modificar el mensaje lo podemos hacer acá Message.
Acá podemos cambiar el mensaje error o personalizar, pero da lo mismo.
También lo podemos hacer en el Properties.
Guardamos.
Qué me faltaría?
Bueno, si vamos a validar con anotación.
Acá tenemos que deshabilitar esta validación en usuario y validar, entonces lo podremos comentar.
Lo comentamos nada más y comentamos también usuario de que no lo estamos ocupando y en import.
También podremos comentar acá el import de usuario.
Guardamos.
Ah, no, no, no, por qué se está usando acá?
Así que está bien, solamente guardamos y está molesto.
Claro, el usuario se está utilizando en support, pero acá lo comentamos.
Yaca entonces usuario validador solamente válida con el nombre, el campo nombre.
Pero ahora quitamos la validación del identificador de usuario validador y la vamos a implementar usando
anotaciones.
Bueno, la diferencia que entre una forma y la otra, tal como vimos implementando una clase con la
interfaz validad itor como usuario validador dentro de validad y podemos implementar varias validaciones.
El nombre identificador es Cipayos Campos acá, mientras que con una anotación se valida un valor en
específico, pero este valor se puede replicar y reutilizar en varios campos.
Es decir, podríamos tener varios campos que se aplica la misma notación como ejemplo not empty.
Entonces a la diferencia podemos usar la que más nos gusta o la que más se aplica a nuestro contexto,
a nuestro criterio.
Todas son válidas usando anotaciones en la forma nativa del API de validación de Java de Java pings
validador.
Mientras que una clase con interfaz validad itor es la forma propia de Spring.
Bien, vamos a reusar.
Levantamos.
El formulario.
Bueno, acá debería fallar, ya que tiene tres dígitos.
Enviar identificarían varios se fijan aplicó la anotación.
Ahora, si colocamos 12 enviar perfecto.
Funciona bien tal como estaba antes.
Si colocamos, por ejemplo, minúscula, minúscula o cualquier letra minúscula, embiar falla solamente
mayúscula.
Por ejemplo, a mayúscula.
Enviar.
Perfecto.
Funciona bien el nombre.
Se sigue aplicando con la clase en el campo.
Nombre requerido.
Funciona.
Ahora bien, cómo puedo cambiar?
Por ejemplo, acá a minúscula.
Enviar.
Cómo cambiar este mensaje?
Bueno, de muchas formas, como vimos, vamos al código, una forma como apliqué con el atributo Message.
Acá se fija Message.
Bueno, otra forma que menos recomendada es modificar el Valledor, es decir, la anotación acá en Musset,
modificar acá.
Pero la forma mejor y más recomendada es agregando una entrada en Mesas Properties.
Por ejemplo, el nombre de la anotación es Identifica orra yaks.
Bueno, sigue exactamente mismo el mismo patrón.
Nombre de la notación punto.
Nombre del objeto de formulario con el cual se pasa del controlador a la vista.
Acá tenemos usuario.
Punto.
El atributo identificador
igual un mensaje.
Bueno, podemos colocar este mismo mensaje.
Pero para que sea distinto y no sea igual, hasta acá debemos colocar el formato de la expresión regular,
inválido, con buenas actuaciones.
Guardamos.
Esperemos que se actualice todo bien.
Volvemos en enviar ir a cambiar.
Formato Depression regular, inválido, con anotaciones, se fijan superbién.
Hoy lo aliaba, entonces tenemos mucha alternativa para validar muchas formas de forma personalizada,
implementando nuestro propio algoritmo, nuestro propio código.
En este último, usando anotaciones y retornando un bolear otru Jeffords, nada más.
Continuamos en la siguiente clase.