1
00:00:00,120 --> 00:00:00,790
Bien, para practicar.

2
00:00:00,810 --> 00:00:03,600
Vamos a ver otro ejemplo de validación con anotaciones.

3
00:00:03,690 --> 00:00:09,870
La idea de validar, por ejemplo, el apellido, pero usando una anotación personalizada en vez de not

4
00:00:09,870 --> 00:00:10,260
empty.

5
00:00:10,470 --> 00:00:15,750
Vamos a comentar y vamos a crear entonces esta anotación, pero antes vamos a cerrar.

6
00:00:15,810 --> 00:00:21,270
Usuario validador temés cerramos identificador regex y también está acá.

7
00:00:21,850 --> 00:00:24,060
Bien, nos vamos entonces a formulario.

8
00:00:24,300 --> 00:00:24,390
Bien.

9
00:00:24,480 --> 00:00:26,220
Acabar con error no tiene importancia.

10
00:00:26,280 --> 00:00:30,800
Simplemente como siempre con Maven actualizar proyect ok.

11
00:00:31,980 --> 00:00:34,440
Listo, se soluciona lo siguiente.

12
00:00:34,500 --> 00:00:37,320
Por acá vamos a crear una anotación.

13
00:00:38,240 --> 00:00:41,670
Entonces, primero anotacion que vamos a llamar requerido.

14
00:00:42,920 --> 00:00:44,840
Entonces la idea de validar que sea distinto.

15
00:00:45,440 --> 00:00:48,890
Y también que no sea con espacio en blanco que sea requerido.

16
00:00:49,010 --> 00:00:55,350
Bien retencion ragtime y target, campo fiel y método método finalizarÃ.

17
00:00:56,390 --> 00:00:58,670
Vean lo siguiente una clase de validación.

18
00:00:59,650 --> 00:01:11,410
Requerido validador el interfases agregamos una buscamos constraint por acá constraint validad itor

19
00:01:11,560 --> 00:01:16,480
bella vax valid hecha un clic la seleccionamos OK finalizar.

20
00:01:17,830 --> 00:01:28,280
Bien, agregamos el método implementar, pero acá requiere el tipo de la anotación requerido y acá string.

21
00:01:29,350 --> 00:01:31,030
De que le pidió también es un string.

22
00:01:31,390 --> 00:01:35,390
Bueno, y acá también el value es del tipo string.

23
00:01:35,920 --> 00:01:36,520
Por lo mismo.

24
00:01:36,730 --> 00:01:37,180
Perfecto.

25
00:01:37,270 --> 00:01:37,930
Qué faltaría?

26
00:01:38,050 --> 00:01:40,630
Bueno, faltaría enlazar esta clase.

27
00:01:40,720 --> 00:01:43,570
Construe validad itor requerido validador.

28
00:01:43,730 --> 00:01:52,810
Le vamos a copiar y la enlazamos acá con la anotación Constraint Construe Yaks Validación validado por

29
00:01:54,280 --> 00:01:54,880
punto Klas.

30
00:01:54,970 --> 00:01:57,580
Bueno, igual que antes, lo mismo guardamos.

31
00:01:57,670 --> 00:02:01,270
Bueno, también vamos a agregar los atributos de esta anotación.

32
00:02:01,420 --> 00:02:05,980
Recuerden Messages Group y Pelot, pero vamos acá.

33
00:02:06,700 --> 00:02:08,080
Control clic con cualquiera.

34
00:02:08,200 --> 00:02:09,970
Da lo mismo y copiamos esto.

35
00:02:10,260 --> 00:02:14,110
Estos tres atributos cerramos la anotación No Blanck.

36
00:02:14,290 --> 00:02:17,460
Volvemos a requerido y lo pegamos.

37
00:02:17,830 --> 00:02:19,800
Damos un mensaje por defecto.

38
00:02:20,740 --> 00:02:23,800
Cualquiera, como por ejemplo campo, apellido, es requerido.

39
00:02:27,100 --> 00:02:28,060
Guardamos bien.

40
00:02:28,180 --> 00:02:33,920
Ahora toca validar acá, pero bastante simple, con un if univ.

41
00:02:34,120 --> 00:02:37,960
Primero, antes que nada valioso si es igual a null.

42
00:02:39,230 --> 00:02:40,700
O se vacío.

43
00:02:41,750 --> 00:02:49,250
Recuerden que Valeo es del tipo String y acá tenemos el método y siempre o si es Blanck.

44
00:02:50,460 --> 00:02:58,410
Entonces, cualquiera de esto si se cumple, si el nulo se vacío o blanco o espacio en blanco, retornamos,

45
00:02:58,410 --> 00:03:01,010
forzo, de lo contrario acá retornamos tuuuu.

46
00:03:01,890 --> 00:03:02,420
Se fijan?

47
00:03:02,580 --> 00:03:03,390
Ahí estamos, goleÃ.

48
00:03:03,660 --> 00:03:08,850
Faltaría bueno, en usuario, como comentamos, not empty acá sería requerido.

49
00:03:11,200 --> 00:03:12,700
Guardamos bien, vamos a probar.

50
00:03:13,030 --> 00:03:14,410
Levantamos como siempre.

51
00:03:18,570 --> 00:03:25,350
Al formulario bueno, quitamos el apellido, el que me interesa, por ejemplo, enviar Campo Pelli requerido.

52
00:03:25,500 --> 00:03:26,250
Funciona perfecto.

53
00:03:26,490 --> 00:03:33,150
Ahora, si colocamos un espacio en blanco, por ejemplo enviar, también se fijan está valiendo por

54
00:03:33,210 --> 00:03:34,170
espacio en blanco.

55
00:03:36,050 --> 00:03:37,850
Y también si no colocamos nada.

56
00:03:39,430 --> 00:03:41,290
Pero si colocamos el apellido.

57
00:03:42,180 --> 00:03:42,690
Perfecto.

58
00:03:42,780 --> 00:03:43,380
Lo halia bien.

59
00:03:43,590 --> 00:03:47,610
Se fijan otra forma más personalizada, pero también hay diferentes alternativas.

60
00:03:47,640 --> 00:03:53,760
Por ejemplo, bueno, esta variación es correcta, pero esto acá se podría reemplazar también utilizando

61
00:03:53,880 --> 00:03:56,270
un Halpert, una clase de utilidad de sprint.

62
00:03:57,180 --> 00:04:00,900
Entonces, bueno, pueden dejar esta tal cual o bien esta de acá.

63
00:04:01,050 --> 00:04:05,100
Da lo mismo, pero acá sería una sola instrucción string útiles.

64
00:04:08,010 --> 00:04:10,130
Punto hojas text en realidad.

65
00:04:10,360 --> 00:04:11,700
Castex acá la tenemos.

66
00:04:12,160 --> 00:04:14,430
Entonces pregunta si tiene texto value.

67
00:04:14,610 --> 00:04:16,200
Es decir, se distinto vacío.

68
00:04:16,290 --> 00:04:17,130
Y si tiene texto.

69
00:04:17,250 --> 00:04:20,130
Es decir, que sea distinto de blanco o espacio en blanco.

70
00:04:20,550 --> 00:04:23,360
Pero tiene que ser distinto porque esto evalúa en true.

71
00:04:24,060 --> 00:04:26,010
Esto sería true si tiene contenido.

72
00:04:26,100 --> 00:04:30,150
Si no tiene contenido, retorna, fuerz y la negación de fours es true.

73
00:04:30,660 --> 00:04:33,080
Bien, guardamos otra alternativa cualquiera.

74
00:04:33,960 --> 00:04:38,940
Esta es una clase de Spring Framework que la podemos utilizar como Halpert o una clase de utilidad.

75
00:04:39,210 --> 00:04:39,840
Probamos?

76
00:04:40,020 --> 00:04:41,450
Bueno, valida.

77
00:04:41,460 --> 00:04:41,820
Bien.

78
00:04:41,910 --> 00:04:43,050
Quitamos el apellido.

79
00:04:44,100 --> 00:04:45,960
Es requerido con espacios.

80
00:04:47,010 --> 00:04:52,800
requiriÃ, se fijan, entonces cualquiera de las dos estaría bien también para finalizar, como siempre,

81
00:04:52,890 --> 00:04:58,590
vamos a agregar un atributo o texto de validación para requerido para esta anotación.

82
00:04:58,830 --> 00:05:00,780
Entonces voy a copiar el nombre como siempre.

83
00:05:02,800 --> 00:05:05,320
Punto usuario, punto ápido.

84
00:05:11,070 --> 00:05:12,930
Apellido requerido con anotaciones.

85
00:05:12,960 --> 00:05:13,470
Perfecto.

86
00:05:13,590 --> 00:05:14,310
Guardamos.

87
00:05:14,440 --> 00:05:15,600
Esperemos que se actualice.

88
00:05:16,900 --> 00:05:20,590
Enviar al pillo requerido con anotaciones, espacios.

89
00:05:25,410 --> 00:05:30,180
Bien diferentes alternativas y para finalizar, vamos a arreglar un detalle, nos vamos a requerido.

90
00:05:30,640 --> 00:05:35,610
Bueno, acá dice campo apellido es requerido, pero en realidad no solamente para apellido, sino también

91
00:05:35,610 --> 00:05:41,430
se puede aplicar este constraint o validador en cualquier otro campo, entonces es mejor dejarlo más

92
00:05:41,430 --> 00:05:41,910
genérico.

93
00:05:41,940 --> 00:05:49,920
Por ejemplo, el campo es requerido y por acá una marca, por ejemplo, un guión usando anotaciones

94
00:05:51,720 --> 00:05:52,110
y listo.

95
00:05:52,170 --> 00:05:57,420
Justamente porque si nos vamos al usuario, por ejemplo, estamos usando requerido en apellido, pero

96
00:05:57,420 --> 00:06:02,050
también lo poco piar y podría validar el email en vez de usar not empty.

97
00:06:02,140 --> 00:06:04,020
Bueno, el final es prácticamente lo mismo.

98
00:06:04,260 --> 00:06:07,290
Podría utilizar requerido de Bejan y así en cualquier campo.

99
00:06:07,620 --> 00:06:12,570
Entonces bueno, por supuesto que para el apellido va a mostrar el mensaje array que tenemos acá porque

100
00:06:12,570 --> 00:06:15,140
está personalizado, requerido usuario, punto apellido.

101
00:06:15,180 --> 00:06:21,750
Pero como no tenemos el requerido para el email en el properties, va a usar el mensaje error por defecto

102
00:06:21,840 --> 00:06:25,530
el campo requerido usando anotación y lo vamos a probar.

103
00:06:25,680 --> 00:06:30,270
Se fijan acá antes de enviar acá, dice el campo requerido de la validación anterior.

104
00:06:30,570 --> 00:06:36,420
Enviamos el campo requerido usando anotaciones se fijan, pero para el apellido es distinto.

105
00:06:36,670 --> 00:06:37,530
Chiquito Guzmán.

106
00:06:38,740 --> 00:06:43,690
Apoyo requerido con anotaciones, entonces podemos personalizar, customizar, mensaje de error en cada

107
00:06:43,690 --> 00:06:45,040
campo y lo que queramos.

108
00:06:45,130 --> 00:06:45,760
Ahora sí que si.

109
00:06:45,850 --> 00:06:46,450
Nada más.

110
00:06:46,540 --> 00:06:47,860
Nos vemos en la siguiente clase.
