1
00:00:00,180 --> 00:00:01,290
Bien, veamos algunos detalles.

2
00:00:01,440 --> 00:00:07,830
Ya tengo levantado el proyecto, así que voy a rizar el nombre, por ejemplo, voy a quitar John, limpiamos

3
00:00:07,950 --> 00:00:08,880
lo validad perfecto.

4
00:00:09,210 --> 00:00:10,710
El campo nombre no puede ser vacío.

5
00:00:10,770 --> 00:00:15,690
Bueno, acá falla porque tenemos 3, así que si colocamos, por ejemplo 12, no hay ningún problema.

6
00:00:16,410 --> 00:00:17,130
Ya, pero el nombre.

7
00:00:17,130 --> 00:00:18,930
Qué pasa si colocamos espacio en blanco?

8
00:00:19,020 --> 00:00:25,260
Uno, dos, tres, cuatro o incluso uno solo enviar lo haría bien, incluso con uno enviar lo álida

9
00:00:25,260 --> 00:00:30,060
bien, pero la idea es que lo valide, es decir, que rechace la validación y muestre el error.

10
00:00:30,270 --> 00:00:37,620
Bueno, vamos al código para eso nos vamos a usuario validador y cambiamos en vez de regex if empty.

11
00:00:38,600 --> 00:00:41,210
Acá también colocamos Ohr Espacios en blanco.

12
00:00:43,890 --> 00:00:46,080
Esto acá le quitamos porque ya lo tenemos.

13
00:00:47,700 --> 00:00:53,910
Y sería de esa forma, es decir, rechazar si es vacío o con espacios en blanco, guardamos.

14
00:00:53,970 --> 00:00:55,080
Esperemos que se actualice.

15
00:00:57,360 --> 00:00:58,050
Volvemos a probar.

16
00:00:58,120 --> 00:01:00,600
Ahí tiene un espacio embiar y lo álida.

17
00:01:01,140 --> 00:01:03,550
Voy a colocar más embiar perfecto.

18
00:01:03,570 --> 00:01:07,470
Funciona bien, pero también se aplica al uso de anotaciones.

19
00:01:07,500 --> 00:01:08,520
Por ejemplo, el Yussef.

20
00:01:09,210 --> 00:01:14,370
También podría agregar 1, 2, 3 entre 3 y 8 4 y a 4.

21
00:01:14,490 --> 00:01:14,970
Enviar.

22
00:01:15,780 --> 00:01:16,320
Se fijan.

23
00:01:16,680 --> 00:01:20,070
Pasa la validación, claro, porque está anotado con Not empty.

24
00:01:20,340 --> 00:01:21,630
Y cómo lo podemos solucionar?

25
00:01:21,720 --> 00:01:22,620
Usando anotaciones.

26
00:01:22,770 --> 00:01:26,130
Vamos al código usuario es el Yussef.

27
00:01:26,430 --> 00:01:29,760
Bueno, cambiamos en vez de empty sería Not Blanck.

28
00:01:30,780 --> 00:01:32,590
Not black y not black.

29
00:01:32,800 --> 00:01:38,820
Bueno, además de validarse, es distinto, nulo si contiene caracteres, además que no contenga espacio

30
00:01:38,820 --> 00:01:39,270
en blanco.

31
00:01:39,870 --> 00:01:41,430
Entonces reemplazamos por not blank.

32
00:01:42,600 --> 00:01:47,370
Se fijan ahora podríamos tener ambas, pero el problema es que iba validad, va a valer dos veces.

33
00:01:47,590 --> 00:01:51,960
Bueno, lo vemos, pero primero pedimos no blanca, guardamos, esperamos que se actualice.

34
00:01:52,740 --> 00:01:54,130
En este caso es el Yussef Name.

35
00:01:54,330 --> 00:01:56,710
El just en enviar no puede ser vacío.

36
00:01:57,000 --> 00:01:57,690
Entonces lo alías.

37
00:01:57,690 --> 00:01:58,230
Se fijan.

38
00:01:59,870 --> 00:02:03,050
No puede estar vacío y además el tamaño tiene que estar entre 3 y 8.

39
00:02:03,590 --> 00:02:05,600
Claro, porque hay dos espacio en blanco.

40
00:02:06,380 --> 00:02:07,730
Colocábamos dos más.

41
00:02:09,010 --> 00:02:10,450
Perfecto, no puede estar vacío.

42
00:02:13,570 --> 00:02:18,010
Ahora, por eso se recomienda tener Not empty o Not Black, pero no ambos.

43
00:02:18,130 --> 00:02:18,670
Por qué?

44
00:02:18,880 --> 00:02:26,230
Porque por ejemplo, si colocamos Not blank y Not empty valida, los dos guardamos y al final se duplica

45
00:02:26,230 --> 00:02:26,800
la validación.

46
00:02:26,950 --> 00:02:32,530
Por ejemplo, enviar por ejemplo lo mismo enviar el Yussef es obligatorio.

47
00:02:32,620 --> 00:02:35,910
El tamaño tiene que estar entre 3 y 8 y no puede estar vacío.

48
00:02:35,920 --> 00:02:36,400
Se fija.

49
00:02:38,010 --> 00:02:40,230
Enviar no puede estar vacío.

50
00:02:44,340 --> 00:02:51,300
El tamaño tiene que estar entre 8, pero si no colocamos nada, se alía los tres valedores tanto en

51
00:02:51,300 --> 00:02:51,780
ti como no!

52
00:02:52,350 --> 00:02:54,720
Y por supuesto el 6 incluso.

53
00:02:55,020 --> 00:03:01,170
Bueno, podríamos dejar estos dos Not Black Y6, pero incluso estaría correcto dejar solamente el 6,

54
00:03:01,200 --> 00:03:02,460
porque el 6 también compara.

55
00:03:03,590 --> 00:03:05,690
Se fijan, pero hoy tendremos un problema.

56
00:03:05,870 --> 00:03:06,860
Por ejemplo, guardamos.

57
00:03:07,460 --> 00:03:08,540
Esperemos que se actualice.

58
00:03:09,720 --> 00:03:11,460
Enviar perfecto al día.

59
00:03:11,550 --> 00:03:16,350
No hay nada, se valida entre 13 8, por ejemplo Andrés Perfecto.

60
00:03:16,830 --> 00:03:18,480
Pero qué pasa si colocamos espacios en blanco?

61
00:03:18,510 --> 00:03:19,290
Un, dos, tres.

62
00:03:20,130 --> 00:03:20,790
También se valías?

63
00:03:20,790 --> 00:03:21,310
Se fijan?

64
00:03:22,230 --> 00:03:23,130
Si colocamos 2.

65
00:03:24,260 --> 00:03:26,130
Hay tal error entre 3 y 8.

66
00:03:26,330 --> 00:03:28,940
Entonces por eso también es recomendable utilizar Not blank.

67
00:03:31,250 --> 00:03:34,430
Y lo podemos dejar de esa forma es hilar un poco más fino.

68
00:03:35,030 --> 00:03:37,640
Bien, también podremos cambiar el mensaje error.

69
00:03:37,730 --> 00:03:43,880
El código, por ejemplo, en vez de utilizar el mismo que utilizamos en la anotación Not Empty, podríamos

70
00:03:43,880 --> 00:03:45,320
tener otro mensaje.

71
00:03:46,010 --> 00:03:49,190
Pero un detalle solamente para que sepan el nombre que queramos.

72
00:03:50,840 --> 00:03:52,670
Requerido usuario apunto nombre.

73
00:03:52,820 --> 00:03:53,470
Lo voy a copiar.

74
00:03:55,590 --> 00:03:57,840
Lo voy a pegar acá el mensaje properties.

75
00:04:00,050 --> 00:04:01,520
El campo nombre es requerido.

76
00:04:06,100 --> 00:04:08,170
Guardamos, esperemos que se actualice.

77
00:04:09,620 --> 00:04:10,340
Me falto guardar.

78
00:04:10,700 --> 00:04:15,020
Guardamos ahora que si guardamos usario validador, mensaje, punto properties.

79
00:04:15,720 --> 00:04:17,030
Bien, ahora debería funcionar bien.

80
00:04:17,750 --> 00:04:20,420
Enviar el campo nombre requerido, se fijan.

81
00:04:22,890 --> 00:04:23,410
La riquerio.

82
00:04:23,680 --> 00:04:24,910
Bien, veamos otro tema.

83
00:04:26,740 --> 00:04:27,460
El controlador.

84
00:04:27,670 --> 00:04:28,600
Otra alternativa.

85
00:04:28,690 --> 00:04:34,720
En vez de utilizar de forma explícita en el código el validad, esto lo podríamos quitar o comentar.

86
00:04:34,810 --> 00:04:39,640
En mi caso lo voy a comentar y lo vamos a automatizar para que se valide con la anotación valid de forma

87
00:04:39,640 --> 00:04:43,780
trasparente, sin hacer nada en el procesar, sin una línea de código adicional.

88
00:04:43,900 --> 00:04:49,300
Bueno, pero para eso tenemos que implementar y registrar este validador en el init Binter, es decir,

89
00:04:49,300 --> 00:04:55,820
cuando se inicializa el proceso de validación y el proceso de pasar los datos al objeto usuario acá.

90
00:04:55,960 --> 00:04:57,340
Pero eso se hace detrás de escena.

91
00:04:57,430 --> 00:05:02,110
No lo vemos por debajo, lo hace framework es cuando se envía los datos formulario, el controlador

92
00:05:02,110 --> 00:05:06,250
lo recibe los datos y lo puebla al objeto usuario y también lo valida.

93
00:05:06,370 --> 00:05:13,510
Eso sería el inicializar el init 20's es de poblar, de poblar los datos del formulario y también validar.

94
00:05:13,840 --> 00:05:17,110
Entonces anotamos init init pinder.

95
00:05:19,090 --> 00:05:20,630
Inet Binder la ve con mayúscula.

96
00:05:21,340 --> 00:05:29,920
Bien, un método, un método public void no retorna nada init binder o el nombre que queramos le vamos

97
00:05:29,920 --> 00:05:37,450
a llamar igual inet Binter y recibe el web data binder, un objeto propio de princ lo importamos Ward

98
00:05:37,450 --> 00:05:46,720
Data Binder Binter Binter punto buscamos acá Zeth valida ectos set valida ICTA.

99
00:05:49,240 --> 00:05:55,180
Y lo registramos el validador y cambiamos validad y torpor validador que lo estamos inyectando.

100
00:05:56,890 --> 00:06:01,930
Entonces lo inyectamos validador y lo pasamos acá por argumento, bueno, y justamente lo que hace es

101
00:06:01,930 --> 00:06:07,090
validar, pero de forma transparente, nada más se registra este validador en el web data binder.

102
00:06:07,150 --> 00:06:10,940
Una vez que se envían los datos desde el formulario, se pelan los datos y se valida.

103
00:06:11,000 --> 00:06:14,920
Bueno, todo este proceso se maneja acá y acá registramos el validador.

104
00:06:15,220 --> 00:06:17,380
Esto por debajo se maneja con interceptores.

105
00:06:17,680 --> 00:06:21,610
Vamos a revisar, pero vamos a tener un problema enviar para validar.

106
00:06:21,710 --> 00:06:26,560
Bueno, solamente está validando con usuario validador, pero todo lo que es anotacion se pierde y ya

107
00:06:26,560 --> 00:06:30,660
no aceptaba aliando el username, password, el correo también el apellido.

108
00:06:30,670 --> 00:06:37,150
Por ejemplo, si quitamos doe enviar se pierde, solamente está valiendo el nombre y el identificador,

109
00:06:37,210 --> 00:06:37,960
pero nada más.

110
00:06:38,020 --> 00:06:46,270
Por ejemplo 100 identificador colocábamos 123 enviar lo álida perfecto étodos bueno es porque están

111
00:06:46,360 --> 00:06:50,650
en la clase validad ahora personalizada usuario validador bueno, pero cómo se puede corregir?

112
00:06:50,710 --> 00:06:56,170
La idea es que aplique tanto validador con anotaciones tal como lo teníamos y también con la clase.

113
00:06:56,270 --> 00:07:01,690
Bueno, el problema está acá en el Winder, está haciendo un set Valledor, por lo tanto al asignar

114
00:07:01,690 --> 00:07:08,110
con Set lo que hace reemplazar el validador por defecto de las anotaciones con el nuevo validador usuario

115
00:07:08,200 --> 00:07:12,370
validador, entonces solamente se aplica este valor la clase personalizada.

116
00:07:12,590 --> 00:07:13,780
Bueno, cómo lo podemos solucionar?

117
00:07:13,870 --> 00:07:20,620
En vez de set validador usamos add validad y tors en plural y listo.

118
00:07:20,770 --> 00:07:21,580
Ese es todo el cambio.

119
00:07:21,700 --> 00:07:25,510
Entonces con ADD lo que hace es agregar un nuevo alisador al stack.

120
00:07:25,630 --> 00:07:26,800
El init Binter.

121
00:07:26,860 --> 00:07:31,390
Esta anotación es un evento del ciclo de vida del controlador cuando se inicializa el Binter.

122
00:07:31,480 --> 00:07:38,080
El Winder es como un portafolio donde se realizan el data binding para poner datos al objeto usuario

123
00:07:38,110 --> 00:07:41,950
cuando se envía el formulario para validar para implementar filtros también.

124
00:07:42,070 --> 00:07:48,340
En fin, es un stack de cosas y a esta stack le podemos agregar valor y esa la idea es agregar, no

125
00:07:48,430 --> 00:07:49,600
modificar conceto.

126
00:07:49,690 --> 00:07:51,670
Para que no se pierdan las anotaciones.

127
00:07:51,760 --> 00:07:53,440
Mantengamos las dos guardamos.

128
00:07:53,590 --> 00:07:54,970
Esperemos que se actualice el cambio.

129
00:07:55,330 --> 00:07:57,430
Volvemos, enviamos enviar.

130
00:07:57,520 --> 00:08:02,560
Ahora se que si se aplica a todo usando anotaciones y también la clase vale, ahora está molesto.

131
00:08:02,740 --> 00:08:06,090
Está todo funcionando igual que antes, pero usando init tintes.

132
00:08:06,190 --> 00:08:07,360
Otra alternativa.

133
00:08:07,420 --> 00:08:08,980
Bueno, cuál es mejor de lo mismo?

134
00:08:09,040 --> 00:08:10,660
Pueden utilizar la que más le gusta.

135
00:08:10,750 --> 00:08:18,430
Lo que sí, la única ventaja del indep binder que desacoplar el validador validad del procesar del método

136
00:08:18,440 --> 00:08:19,720
JANTES es transparente.

137
00:08:19,780 --> 00:08:20,410
Pero eso es todo.

138
00:08:20,530 --> 00:08:27,150
Una forma más explícita acá, o bien una forma más implícita acá, registrando el validar.

139
00:08:27,280 --> 00:08:29,320
Pero insisto, cualquiera de las dos está perfecto.

140
00:08:29,410 --> 00:08:31,000
Nos vemos en la siguiente clase.
