1
00:00:00,240 --> 00:00:00,840
Continuemos.

2
00:00:00,930 --> 00:00:06,090
Veamos otra forma de implementar una validación personalizada, pero utilizando anotaciones como por

3
00:00:06,090 --> 00:00:09,030
ejemplo si nos vamos a usuario acá tenemos not empty.

4
00:00:09,120 --> 00:00:14,490
Bueno, podemos implementar algo muy similar a esto acá, pero personalizado por ejemplo para validar

5
00:00:14,550 --> 00:00:20,040
alguna expresión regular sin utilizar pattern, sino de forma más programática o validar cogé, cosa

6
00:00:20,130 --> 00:00:26,490
también similar a como lo hicimos acá también, pero con anotaciones en un atributo, en un campo.

7
00:00:26,590 --> 00:00:32,550
Bueno, esta anotación se aplica a atributos, pero se pueden reutilizar en varios atributos, igual

8
00:00:32,760 --> 00:00:33,150
que acá.

9
00:00:33,270 --> 00:00:40,320
Igual que nos blank el 6 not empty, podemos tener varias validaciones not empty en diferentes atributos.

10
00:00:40,410 --> 00:00:42,570
Bueno, acá también se aplica exactamente igual.

11
00:00:42,660 --> 00:00:43,290
Bien, comencemos.

12
00:00:43,350 --> 00:00:45,180
Lo primero es crear una anotación.

13
00:00:45,450 --> 00:00:52,380
La podemos crear en valid mechon por acá vamos a crear una nueva anotación li derecho new anoté schön.

14
00:00:53,190 --> 00:00:56,460
Le damos un nombre por ejemplo identificador regex.

15
00:00:58,230 --> 00:00:59,400
Identificador RegEx.

16
00:00:59,550 --> 00:01:01,530
Ven, vamos a agregar el retrataron.

17
00:01:01,720 --> 00:01:07,410
Bueno, está marcado por defecto a retencion lo dejamos en ralenti, es decir, se ejecuta en tiempo

18
00:01:07,410 --> 00:01:07,920
de ejecución.

19
00:01:08,010 --> 00:01:12,040
Ahí se resuelve y se implementa esta anotación en el atributo target.

20
00:01:12,100 --> 00:01:18,870
Bueno, donde en el atributo marcamos atributo field y marcamos método, ambos se implementan ya sea

21
00:01:18,870 --> 00:01:20,220
para validar un método.

22
00:01:20,250 --> 00:01:23,180
Por ejemplo nyet, un campo y listo.

23
00:01:23,190 --> 00:01:23,760
Finalizar.

24
00:01:24,990 --> 00:01:26,210
Del momento lo dejamos así.

25
00:01:26,360 --> 00:01:28,430
Ahora tenemos que crear nuestra clase, validará.

26
00:01:28,520 --> 00:01:30,190
Ahora, si se fijan en los import.

27
00:01:30,650 --> 00:01:32,780
Acá están todas las anotaciones de Yaba.

28
00:01:32,900 --> 00:01:37,070
Bien, lo siguiente crear nuestra clase new class.

29
00:01:37,430 --> 00:01:39,680
Le vamos a llamar igual, pero validador.

30
00:01:39,770 --> 00:01:41,720
Identificaros regex validador.

31
00:01:45,410 --> 00:01:47,900
Pero también el nombre que quieran finalizar.

32
00:01:48,320 --> 00:01:54,830
Acá tenemos que implementar una interfaz simplement con constraint válida itor

33
00:01:58,670 --> 00:02:03,210
importamos de VAX en palidecieron de abaxo perfecto.

34
00:02:03,320 --> 00:02:09,530
Acá nos pide implementar métodos, pero antes teníamos que agregar acá generic tipo genérico.

35
00:02:09,620 --> 00:02:14,930
Es decir, esta validación se aplicar a qué anotacion es para enlazar una anotación que ya la tenemos

36
00:02:14,960 --> 00:02:16,370
con este validador.

37
00:02:17,420 --> 00:02:22,300
Entonces copiamos el nombre de esta anotación y la pegamos acá.

38
00:02:24,210 --> 00:02:31,140
Y el tipo de dato del campo que vamos a validar, por ejemplo, vamos a validar identificador del tipo

39
00:02:31,140 --> 00:02:31,550
String.

40
00:02:35,300 --> 00:02:41,000
Ahora sí, sobre el error, porque tenemos que implementar métodos de la interfaz del contrato IS Baley.

41
00:02:41,540 --> 00:02:47,170
Bueno, acá implementamos es súper simple, retorna true si se valida bien, Ford si se valida mal,

42
00:02:47,390 --> 00:02:53,470
pero bueno, la validación del regex del identificador la tenemos acá, entonces podemos copiar TIFF,

43
00:02:53,600 --> 00:02:58,580
lo copiamos completo hasta acá y lo pegamos acá.

44
00:02:59,000 --> 00:03:09,440
Sobre el ratón fours ya vamos a quitar el distinto, el distinto lo quitamos en vez de usuario get identificado

45
00:03:09,440 --> 00:03:10,520
sería value.

46
00:03:12,040 --> 00:03:19,060
El atributo que se va a validar bueno value corresponde al identificador entonces value punto matches.

47
00:03:19,270 --> 00:03:22,030
Bueno, si esto es true, perfecto, cierto, se cumple.

48
00:03:22,120 --> 00:03:25,720
Retornamos true si no se cumple.

49
00:03:25,830 --> 00:03:26,830
Bueno, no pasa nada.

50
00:03:26,920 --> 00:03:27,820
Retornemos fols.

51
00:03:28,000 --> 00:03:34,300
Acá podría haber un else, pero como estamos retornando acá si no se cumple, bueno, retornamos después

52
00:03:34,360 --> 00:03:34,690
del if.

53
00:03:34,780 --> 00:03:36,310
Guardamos bien lo siguiente.

54
00:03:36,430 --> 00:03:38,200
Ahora tenemos que enlazar esta anotación.

55
00:03:38,350 --> 00:03:42,720
Esta anotación identifica RegEx en la sala con esta clase.

56
00:03:44,840 --> 00:03:55,400
Entonces, por acá una anotación con Strait de Bugs Valid echan paréntesis el atributo validado por

57
00:03:56,030 --> 00:04:00,200
llega colocamos la clase en nombre, podríamos copiar el nombre.

58
00:04:01,610 --> 00:04:05,780
Lo pegamos acá, punto, clase guardamos, pero bien, eso no es todo.

59
00:04:05,930 --> 00:04:09,680
También tengo que agregar algunos atributos a esta anotación.

60
00:04:09,710 --> 00:04:11,300
Por ejemplo, el mensaje error.

61
00:04:11,360 --> 00:04:14,660
Pero bueno, una forma bien simple y rápida de hacer esto.

62
00:04:14,840 --> 00:04:21,620
Nos vamos al usuario, por ejemplo y con control click a cualquier anotación a not empty o not blank

63
00:04:21,710 --> 00:04:27,710
o 6 cualquiera, por ejemplo, not empty, control click y copiamos estos tres métodos.

64
00:04:28,840 --> 00:04:35,020
Mensaje grupo y el pailebot que ha requerido es parte de esta estación de validación.

65
00:04:35,050 --> 00:04:36,370
Entonces simplemente se copia.

66
00:04:39,380 --> 00:04:40,140
Y lo pegamos acá.

67
00:04:41,190 --> 00:04:43,590
Acá podemos dar un valor por defecto, un mensaje.

68
00:04:44,620 --> 00:04:46,180
Por ejemplo, identificador

69
00:04:48,520 --> 00:04:54,940
inválido, identificador inválido y guardamos lo otros atributos groups y pelot por defecto, grups

70
00:04:54,970 --> 00:04:56,950
para agrupar valedores.

71
00:04:57,100 --> 00:04:59,860
Pero bien, esta sería la configuración por defecto simple.

72
00:05:00,040 --> 00:05:03,340
Ahora lo siguiente bueno es aplicar esta anotación.

73
00:05:03,490 --> 00:05:09,820
Entonces, por ejemplo, si nos vamos al usuario, podríamos anotar ahora con nuestro validador usuario

74
00:05:09,910 --> 00:05:14,200
identificador reyes y listo.

75
00:05:14,380 --> 00:05:14,860
Nada más.

76
00:05:14,920 --> 00:05:15,550
Así de simple.

77
00:05:15,640 --> 00:05:19,840
Recuerden que si queremos modificar el mensaje lo podemos hacer acá Message.

78
00:05:20,020 --> 00:05:24,040
Acá podemos cambiar el mensaje error o personalizar, pero da lo mismo.

79
00:05:24,130 --> 00:05:25,810
También lo podemos hacer en el Properties.

80
00:05:26,270 --> 00:05:26,800
Guardamos.

81
00:05:26,860 --> 00:05:27,640
Qué me faltaría?

82
00:05:27,730 --> 00:05:29,650
Bueno, si vamos a validar con anotación.

83
00:05:30,630 --> 00:05:37,110
Acá tenemos que deshabilitar esta validación en usuario y validar, entonces lo podremos comentar.

84
00:05:38,540 --> 00:05:45,820
Lo comentamos nada más y comentamos también usuario de que no lo estamos ocupando y en import.

85
00:05:46,490 --> 00:05:49,340
También podremos comentar acá el import de usuario.

86
00:05:50,720 --> 00:05:51,410
Guardamos.

87
00:05:51,500 --> 00:05:53,120
Ah, no, no, no, por qué se está usando acá?

88
00:05:53,360 --> 00:05:56,300
Así que está bien, solamente guardamos y está molesto.

89
00:05:57,490 --> 00:06:00,970
Claro, el usuario se está utilizando en support, pero acá lo comentamos.

90
00:06:02,260 --> 00:06:08,260
Yaca entonces usuario validador solamente válida con el nombre, el campo nombre.

91
00:06:08,320 --> 00:06:13,490
Pero ahora quitamos la validación del identificador de usuario validador y la vamos a implementar usando

92
00:06:13,490 --> 00:06:14,020
anotaciones.

93
00:06:14,090 --> 00:06:19,060
Bueno, la diferencia que entre una forma y la otra, tal como vimos implementando una clase con la

94
00:06:19,060 --> 00:06:23,860
interfaz validad itor como usuario validador dentro de validad y podemos implementar varias validaciones.

95
00:06:23,950 --> 00:06:30,070
El nombre identificador es Cipayos Campos acá, mientras que con una anotación se valida un valor en

96
00:06:30,070 --> 00:06:34,690
específico, pero este valor se puede replicar y reutilizar en varios campos.

97
00:06:34,960 --> 00:06:38,890
Es decir, podríamos tener varios campos que se aplica la misma notación como ejemplo not empty.

98
00:06:39,460 --> 00:06:45,700
Entonces a la diferencia podemos usar la que más nos gusta o la que más se aplica a nuestro contexto,

99
00:06:45,760 --> 00:06:46,930
a nuestro criterio.

100
00:06:47,020 --> 00:06:54,550
Todas son válidas usando anotaciones en la forma nativa del API de validación de Java de Java pings

101
00:06:54,640 --> 00:06:55,260
validador.

102
00:06:55,360 --> 00:07:00,070
Mientras que una clase con interfaz validad itor es la forma propia de Spring.

103
00:07:00,320 --> 00:07:01,330
Bien, vamos a reusar.

104
00:07:01,450 --> 00:07:02,170
Levantamos.

105
00:07:09,940 --> 00:07:10,780
El formulario.

106
00:07:11,350 --> 00:07:13,960
Bueno, acá debería fallar, ya que tiene tres dígitos.

107
00:07:14,440 --> 00:07:18,670
Enviar identificarían varios se fijan aplicó la anotación.

108
00:07:19,300 --> 00:07:22,750
Ahora, si colocamos 12 enviar perfecto.

109
00:07:22,810 --> 00:07:24,250
Funciona bien tal como estaba antes.

110
00:07:24,790 --> 00:07:33,430
Si colocamos, por ejemplo, minúscula, minúscula o cualquier letra minúscula, embiar falla solamente

111
00:07:33,430 --> 00:07:33,850
mayúscula.

112
00:07:33,880 --> 00:07:35,140
Por ejemplo, a mayúscula.

113
00:07:35,230 --> 00:07:35,800
Enviar.

114
00:07:36,160 --> 00:07:36,640
Perfecto.

115
00:07:36,730 --> 00:07:38,280
Funciona bien el nombre.

116
00:07:38,590 --> 00:07:41,980
Se sigue aplicando con la clase en el campo.

117
00:07:41,980 --> 00:07:42,730
Nombre requerido.

118
00:07:42,760 --> 00:07:43,180
Funciona.

119
00:07:43,630 --> 00:07:45,040
Ahora bien, cómo puedo cambiar?

120
00:07:45,160 --> 00:07:47,020
Por ejemplo, acá a minúscula.

121
00:07:48,680 --> 00:07:49,270
Enviar.

122
00:07:49,910 --> 00:07:51,080
Cómo cambiar este mensaje?

123
00:07:51,350 --> 00:07:58,240
Bueno, de muchas formas, como vimos, vamos al código, una forma como apliqué con el atributo Message.

124
00:07:58,550 --> 00:08:00,470
Acá se fija Message.

125
00:08:00,650 --> 00:08:09,400
Bueno, otra forma que menos recomendada es modificar el Valledor, es decir, la anotación acá en Musset,

126
00:08:09,650 --> 00:08:10,250
modificar acá.

127
00:08:10,550 --> 00:08:17,450
Pero la forma mejor y más recomendada es agregando una entrada en Mesas Properties.

128
00:08:18,380 --> 00:08:22,770
Por ejemplo, el nombre de la anotación es Identifica orra yaks.

129
00:08:23,150 --> 00:08:25,820
Bueno, sigue exactamente mismo el mismo patrón.

130
00:08:27,230 --> 00:08:29,090
Nombre de la notación punto.

131
00:08:29,210 --> 00:08:33,290
Nombre del objeto de formulario con el cual se pasa del controlador a la vista.

132
00:08:33,710 --> 00:08:35,060
Acá tenemos usuario.

133
00:08:38,400 --> 00:08:38,850
Punto.

134
00:08:39,000 --> 00:08:40,410
El atributo identificador

135
00:08:43,020 --> 00:08:44,070
igual un mensaje.

136
00:08:44,280 --> 00:08:46,190
Bueno, podemos colocar este mismo mensaje.

137
00:08:48,680 --> 00:08:55,250
Pero para que sea distinto y no sea igual, hasta acá debemos colocar el formato de la expresión regular,

138
00:08:55,490 --> 00:09:00,540
inválido, con buenas actuaciones.

139
00:09:00,800 --> 00:09:01,520
Guardamos.

140
00:09:01,790 --> 00:09:03,710
Esperemos que se actualice todo bien.

141
00:09:04,010 --> 00:09:06,260
Volvemos en enviar ir a cambiar.

142
00:09:08,050 --> 00:09:12,100
Formato Depression regular, inválido, con anotaciones, se fijan superbién.

143
00:09:15,220 --> 00:09:20,200
Hoy lo aliaba, entonces tenemos mucha alternativa para validar muchas formas de forma personalizada,

144
00:09:20,350 --> 00:09:23,230
implementando nuestro propio algoritmo, nuestro propio código.

145
00:09:23,320 --> 00:09:28,540
En este último, usando anotaciones y retornando un bolear otru Jeffords, nada más.

146
00:09:28,630 --> 00:09:30,330
Continuamos en la siguiente clase.
