1
00:00:00,240 --> 00:00:01,710
Veamos como validar el formulario.

2
00:00:01,860 --> 00:00:06,900
Vamos a subir y donde definimos los parámetros por acá, cuando lo capturamos acá podría empezar a validar

3
00:00:06,900 --> 00:00:09,090
cada uno de estos parámetros que tenemos.

4
00:00:09,270 --> 00:00:14,850
Bueno, tipicamente con IF preguntando si es igual a nulo y además si viene la shivá en este caso el

5
00:00:14,850 --> 00:00:20,220
string, agregamos su mensaje error, pero este mensaje robasen una lista, un array del tipo string.

6
00:00:20,490 --> 00:00:21,360
Entonces el list.

7
00:00:23,730 --> 00:00:30,450
Importamos errores igual ArrayList y comenzamos IFF.

8
00:00:30,900 --> 00:00:40,380
Vamos a preguntar primero con el Yussef Neith si es igual a nulo o o validamos que sea distinto de vacío.

9
00:00:40,510 --> 00:00:44,700
Entonces por acá is black is empty o es black con blank.

10
00:00:44,820 --> 00:00:47,400
La única diferencia es que valida además que sea ácido.

11
00:00:47,460 --> 00:00:52,440
Si es un espacio en blanco podría ser simplemente un espacio en blanco, pero que no contenga nada.

12
00:00:52,530 --> 00:00:54,210
Entonces es mucho mejor, mucho completo.

13
00:00:54,210 --> 00:00:55,120
Usar es blanca.

14
00:00:55,320 --> 00:01:01,830
Ahora, este método del string sólo está disponible en la versión 11 de Java del 11 en adelante.

15
00:01:01,920 --> 00:01:06,390
Así que si están utilizando la 8, este método no existir no está disponible.

16
00:01:06,540 --> 00:01:13,430
Bueno, en mi caso utilizar is blank porque es más completa si no utilizan is empty nada más bajamos

17
00:01:14,400 --> 00:01:16,320
errores herrores punto.

18
00:01:16,380 --> 00:01:19,680
Además agregamos un mensaje con algún texto.

19
00:01:19,680 --> 00:01:22,050
Por ejemplo, el Yussef Neem es requerido.

20
00:01:25,530 --> 00:01:28,890
Perfecto, bajamos y así por cada uno.

21
00:01:29,790 --> 00:01:30,870
If el password.

22
00:01:35,500 --> 00:01:42,430
Si es igual a nulo o si el vacío lo mismo es blank, bajamos.

23
00:01:43,690 --> 00:01:44,090
Error.

24
00:01:44,290 --> 00:01:44,950
Punto.

25
00:01:45,010 --> 00:01:47,140
Agregamos algún mensaje?

26
00:01:52,180 --> 00:01:53,410
El Tatsuo no puede ser vacío.

27
00:02:00,240 --> 00:02:06,070
Bien, lo mismo con el e-mail, pero además, bueno, podríamos bolear si es Blanck, pero incluso mucho

28
00:02:06,070 --> 00:02:09,130
mejor si validamos que contengan arroba.

29
00:02:09,220 --> 00:02:13,990
Es decir, si no contiene el carácter година, eso incluye un Blanck, un blanco.

30
00:02:14,020 --> 00:02:18,280
Entonces acá colocamos contains, simplemente escribimos el arroba.

31
00:02:18,880 --> 00:02:20,710
Entonces lo marcamos como un error.

32
00:02:21,400 --> 00:02:24,760
Bajamos error punto AB

33
00:02:32,170 --> 00:02:32,500
Perfecto.

34
00:02:32,500 --> 00:02:33,130
Por eso estamos bien.

35
00:02:33,220 --> 00:02:36,790
El email es requerido y además de tener un formato de correo.

36
00:02:36,910 --> 00:02:38,200
Es decir, tener el arroba.

37
00:02:38,380 --> 00:02:42,370
Bueno, simplemente con el content arroba estamos también valiendo todo acá.

38
00:02:42,520 --> 00:02:49,150
Es decir, si contiene un caracter arroba, obviamente no es vacío, ni tampoco es un espacio o carácter

39
00:02:49,150 --> 00:02:49,630
en blanco.

40
00:02:49,750 --> 00:02:54,850
Ahora claro, una forma mucho más robusta de validar un email e utilizando expresiones regulares, pero

41
00:02:54,850 --> 00:02:57,340
es algo que no vamos a tocar aún en esta clase.

42
00:02:57,550 --> 00:02:58,660
Lo dejamos para más adelante.

43
00:02:58,870 --> 00:02:59,710
Por ahora, simple.

44
00:03:00,280 --> 00:03:03,820
Qué más faltaría el país entonces?

45
00:03:03,820 --> 00:03:05,410
País igual, lo mismo siempre

46
00:03:09,670 --> 00:03:09,980
error.

47
00:03:10,150 --> 00:03:11,280
Punto AdB.

48
00:03:14,800 --> 00:03:17,310
Le pedí requeria perfecto is blank.

49
00:03:17,560 --> 00:03:21,190
Otra forma de colocar esto dentro de quitar para que lo tengan.

50
00:03:22,030 --> 00:03:24,520
Y cuales se fijan?

51
00:03:24,610 --> 00:03:26,950
Eso es un string vacío o empty.

52
00:03:27,100 --> 00:03:33,640
Pero además páis punto igual y un espacio en blanco.

53
00:03:33,760 --> 00:03:39,820
Estos dos validaciones con el equals si es vacío o si contiene un espacio en blanco.

54
00:03:39,910 --> 00:03:42,170
Esas dos cosas lo valida el is blank.

55
00:03:42,430 --> 00:03:44,230
Mucho mejor, mucho más simple utilizar y Blanck.

56
00:03:44,320 --> 00:03:46,540
Pero otra forma lo dejo para que lo tengan presente.

57
00:03:46,720 --> 00:03:53,140
Entonces por un lado valíamos si el nulo y si no nulo contiene un string, un objeto, pero podría ser

58
00:03:53,230 --> 00:03:57,790
vacío acá, o bien podría ser vacío, pero como un espacio en blanco.

59
00:03:58,240 --> 00:03:58,900
Estamos listo.

60
00:03:59,620 --> 00:04:00,490
Qué más tenemos?

61
00:04:00,610 --> 00:04:11,410
El lenguaje en el lenguaje lenguajes me primero si es igual a null, pero es un arreglo, no es un string.

62
00:04:11,440 --> 00:04:18,040
Entonces no podemos paliar si es blank, por ejemplo, pero si pudieran Feller si es vacío, es decir,

63
00:04:18,040 --> 00:04:18,970
si no contiene elementos.

64
00:04:19,180 --> 00:04:21,250
Cómo lo puedo palier con lenguajes?

65
00:04:22,330 --> 00:04:25,330
Punto Lenka, tenemos el atributo lecc.

66
00:04:25,630 --> 00:04:30,220
Y si es igual a cero el tamaño de este arreglo fija que es vacío, que no tiene elemento.

67
00:04:30,430 --> 00:04:33,760
Entonces, como no tiene ningún lenguaje seleccionado, lo marcamos como error.

68
00:04:39,130 --> 00:04:41,170
Un tema debe ser generar al menos un tema.

69
00:04:42,490 --> 00:04:43,990
Los roles muy parecido,

70
00:04:57,370 --> 00:04:59,110
perfectos de seleccionar al menos un rol.

71
00:04:59,200 --> 00:05:01,180
Por último, faltaría el idioma.

72
00:05:05,370 --> 00:05:09,030
Solamente se igualan porque recuerda Incli Idioma es un radio putón.

73
00:05:09,180 --> 00:05:10,920
Solamente elegimos uno u otro.

74
00:05:11,070 --> 00:05:15,780
Da lo mismo validar, por ejemplo, si es blanco, porque nunca ser blanco siempre vamos a seleccionar

75
00:05:15,840 --> 00:05:16,740
uno o el otro.

76
00:05:16,830 --> 00:05:20,100
Siempre tiene contenido, pero si no solucionamos ninguno, pasen null.

77
00:05:20,160 --> 00:05:23,560
Entonces solamente importante que el lidiemos si es igual a.

78
00:05:23,850 --> 00:05:25,020
Porque es un checkbox.

79
00:05:25,950 --> 00:05:26,700
Errores.

80
00:05:27,150 --> 00:05:27,840
Punto.

81
00:05:28,070 --> 00:05:28,230
A

82
00:05:33,090 --> 00:05:33,750
esta molesto.

83
00:05:33,870 --> 00:05:36,000
Hay pedaleamos todo un campo.

84
00:05:36,150 --> 00:05:41,130
Faltaría habilitar el secreto, pero en realidad no tiene sentido porque la habilitar es solamente un

85
00:05:41,130 --> 00:05:44,380
checkbox si o no, pero no es obligatorio si no lo marcamos.

86
00:05:44,410 --> 00:05:45,330
Da lo mismo, no está.

87
00:05:45,330 --> 00:05:49,290
Habilita al usuario, pero debiésemos puede enviar el formulario y el secreto también.

88
00:05:49,410 --> 00:05:54,600
No necesar que lo olim porque no es un input que el usuario va a ingresar si no está por debajo.

89
00:05:54,630 --> 00:05:59,040
Bien escondido en el HTML no se visualiza, pero todo el resto se valida.

90
00:05:59,700 --> 00:06:01,950
Se fijan una validación de formulario.

91
00:06:02,220 --> 00:06:04,460
Ahora la tenemos que mostrar acá en el cuerpo.

92
00:06:04,560 --> 00:06:07,260
Entonces, por ejemplo, por acá podríamos validar.

93
00:06:07,440 --> 00:06:11,550
Podría mostrar el mensaje de error siempre y cuando contenga mensaje de error y mensaje de error lo

94
00:06:11,550 --> 00:06:12,810
podría mostrar como una lista.

95
00:06:12,990 --> 00:06:19,430
Entonces debajo del uele, este uele va a ser tanto para mostrar la información del usuario como también

96
00:06:19,440 --> 00:06:22,470
para mostrar la información de errores lo mensaje de validación.

97
00:06:22,560 --> 00:06:28,290
Entonces con UNIT vamos a preguntar si el arreglo de errores está vacío o si está vacío es porque no

98
00:06:28,290 --> 00:06:29,610
hay ningún mensaje de error.

99
00:06:29,680 --> 00:06:30,390
Está todo bien.

100
00:06:30,510 --> 00:06:32,500
Entonces mostramos los datos del formulario.

101
00:06:32,610 --> 00:06:35,070
De lo contrario mostramos los mensajes de error.

102
00:06:35,520 --> 00:06:37,760
Entonces errores punto.

103
00:06:37,880 --> 00:06:40,230
Es porque tenemos el método iciente.

104
00:06:40,470 --> 00:06:42,060
Entonces esto ha sido perfecto.

105
00:06:42,480 --> 00:06:49,770
Abrimos llave y cerramos al final, pero no al final de todo, sino por acá, justo antes de cerrar

106
00:06:49,830 --> 00:06:50,310
el Novelda.

107
00:06:50,550 --> 00:06:52,290
Entonces por acá cerramos la llave.

108
00:06:53,550 --> 00:06:59,880
Else Si no mostramos el mensaje de error de errores, recuerden que es una lista.

109
00:06:59,940 --> 00:07:05,220
Entonces acá tenemos el método foreach errores o error en realidad, porque vamos a mostrar da1

110
00:07:09,180 --> 00:07:17,520
out punto print print line abrimos etiqueta li cerramos concatenados con el mensaje de error que se

111
00:07:17,520 --> 00:07:23,640
está emitiendo en el método foreach y cerramos también la etiqueta Li y listo.

112
00:07:24,090 --> 00:07:30,360
Y por último, para finalizar, podríamos dar un botón en el else o make un botón, un enlace, un link

113
00:07:30,720 --> 00:07:33,350
para volver atrás al formulario out.

114
00:07:33,960 --> 00:07:34,920
Punto print.

115
00:07:35,910 --> 00:07:38,480
Vamos a tener un párrafo HTML el P.

116
00:07:38,610 --> 00:07:41,040
La etiqueta Apeguen html es un párrafo de texto.

117
00:07:41,220 --> 00:07:43,290
También puede colocar enlaces o RL.

118
00:07:43,890 --> 00:07:48,450
Entonces vamos a colocar un a href perfecto.

119
00:07:48,630 --> 00:07:49,320
Lleca la ruta.

120
00:07:49,770 --> 00:07:54,780
Recuerde que ahí se rompe el string por el carácter especial un cierto comilla.

121
00:07:55,050 --> 00:07:56,100
Entonces tenemos que escapar.

122
00:07:56,820 --> 00:07:58,980
Escapamos con el pixel art.

123
00:07:59,190 --> 00:08:00,020
Acá colocamos la ruta.

124
00:08:00,030 --> 00:08:07,950
°L sería ahora un select nombre proyecto web app form dión form y lo llamamos así.

125
00:08:08,130 --> 00:08:15,210
De esta forma vuelve al index o incluso podemos colocar index punto html del formulario que mejore la

126
00:08:15,210 --> 00:08:19,370
ruta completa web a form que sería el nombre proyecto o context.

127
00:08:19,560 --> 00:08:21,510
Luego el index ya está molesto.

128
00:08:21,660 --> 00:08:22,410
Vamos a probar.

129
00:08:22,650 --> 00:08:24,570
Levantamos Tomcat en el terminal.

130
00:08:27,210 --> 00:08:32,850
Luego hacemos el despliegue una vez que levante completamente Tomcat el puerto 80 80 acá.

131
00:08:39,880 --> 00:08:40,450
Perfecto.

132
00:08:41,260 --> 00:08:41,970
Hacemos un clic.

133
00:08:44,020 --> 00:08:50,650
Acá tenemos el formulario y enviamos el resultado formulario, el Yussef es requerido, el pago no puede

134
00:08:50,650 --> 00:08:51,370
ser vacío.

135
00:08:51,490 --> 00:08:53,680
El email es requerido se fijen hace.

136
00:08:55,280 --> 00:08:57,200
Ahora, si quito los roles.

137
00:08:58,120 --> 00:09:03,520
Embiar también aparece roles de seleccionar al menos un rol, lo que si no me estoy mostrando acá el

138
00:09:03,520 --> 00:09:04,690
link para volver atrás.

139
00:09:05,140 --> 00:09:10,080
Vamos a revisar está incompleto que me falto cerrar, me faltó terminar acá, volver.

140
00:09:10,810 --> 00:09:15,640
Cerramos Zela por apuro nomás de querer levantar rápido el ejemplo.

141
00:09:15,820 --> 00:09:17,020
Bien, pero ya lo tenemos listo.

142
00:09:17,620 --> 00:09:19,240
Volvemos a ejecutar acá.

143
00:09:24,080 --> 00:09:25,730
Ahora sí, empecemos de nuevo.

144
00:09:26,060 --> 00:09:29,700
Perfecto, aparece volver y regresamos al formulario.

145
00:09:30,500 --> 00:09:33,220
Si nos traicionamos, nada puede quitar todo esto con control.

146
00:09:33,230 --> 00:09:35,300
Recuerden control para seleccionar.

147
00:09:36,110 --> 00:09:39,620
Acá también quitamos Angular, quitamos usuario y habilitar.

148
00:09:39,620 --> 00:09:42,090
Da lo mismo, no importa enviar.

149
00:09:42,200 --> 00:09:49,070
Y acá se alía todo el Yussef Naim, el password, el email, los temas o lenguajes, el rol y el idioma.

150
00:09:49,670 --> 00:09:52,940
Y a medida que íbamos completando van desapareciendo los mensajes de error.

151
00:09:52,970 --> 00:09:58,970
Por ejemplo, el email Embiar de seleccionar un idioma solamente faltaría el idioma.

152
00:10:05,430 --> 00:10:11,850
Por ejemplo, inglés enviar muestra toda la información, se fijan habilitado, lo muestran en on,

153
00:10:11,910 --> 00:10:15,100
que es el válido el valor que envié por defecto en un chat box.

154
00:10:15,150 --> 00:10:19,190
Pero eso lo podemos cambiar o también lo podemos convertir a un booleano true o false.

155
00:10:19,680 --> 00:10:20,490
Sería mucho mejor.

156
00:10:20,930 --> 00:10:23,940
Bien, cerramos ahí volvemos y vamos a cambiar.

157
00:10:23,940 --> 00:10:25,110
Eso lo vamos a modificar.

158
00:10:25,170 --> 00:10:29,640
Entonces nos vamos a ir habilitar en vez del tipo String lo cambiamos a Bullían.

159
00:10:30,600 --> 00:10:32,820
Esto es simplemente una mejora, es algo opcional.

160
00:10:32,940 --> 00:10:33,600
Y acá valíamos.

161
00:10:33,600 --> 00:10:35,430
Preguntamos si distinto, nulo.

162
00:10:35,580 --> 00:10:42,330
Y además si es equals, si es igual a on, entonces devolvemos un true, de lo contrario devolvemos

163
00:10:42,330 --> 00:10:42,780
un fols.

164
00:10:42,930 --> 00:10:43,170
Bien.

165
00:10:43,370 --> 00:10:45,000
Simplemente esto acá.

166
00:10:45,150 --> 00:10:45,690
De hecho todo acá.

167
00:10:45,690 --> 00:10:47,370
Lo de copiar porque lo he utilizado dos veces.

168
00:10:48,240 --> 00:10:55,380
Seleccionamos esto hasta ahí, copiamos y acá primero que sea distinto de null yademás ant.

169
00:10:55,590 --> 00:11:03,270
Esto mismo voy a bajar punto y equals on si es igual a on, pero esta validación, como es una expresión

170
00:11:03,270 --> 00:11:05,070
booleana, va a devolver truo fols.

171
00:11:05,190 --> 00:11:09,690
Es decir, ya lo estamos convirtiendo se distinto null y además es on devuelve true.

172
00:11:09,780 --> 00:11:10,980
Por lo tanto, habilitar es true.

173
00:11:11,070 --> 00:11:14,370
Si es nulo o distinto de on, va a devolver.

174
00:11:15,030 --> 00:11:16,200
Entonces esta listo.

175
00:11:16,350 --> 00:11:17,070
No hay nada más que hacer.

176
00:11:17,250 --> 00:11:23,160
Y por último, un tema que quedó pendiente que se me estaba olvidando en el pomme kml nos vamos a hacer

177
00:11:23,160 --> 00:11:23,250
el.

178
00:11:23,940 --> 00:11:26,670
También es opcional pero buena práctica recomendada.

179
00:11:26,970 --> 00:11:29,820
Es una configuración de Maven para UTF 8.

180
00:11:29,970 --> 00:11:40,760
Entonces vamos a colocar acá proyecto punto build punto Source Encoding Coding cerramos un Tc8.

181
00:11:41,910 --> 00:11:52,650
Ese es uno para el código fuente otro más Proyecto Reporting Punto Output Encoding y finalizamos.

182
00:11:52,650 --> 00:11:59,100
Cerramos la etiqueta o Tf8 eso para que se genere otro proyecto con este juego caractéres.

183
00:11:59,220 --> 00:12:01,140
Ahora de todas formas lo hace de forma automática.

184
00:12:01,230 --> 00:12:01,880
El intelige.

185
00:12:01,980 --> 00:12:06,960
Pero si queremos construir nuestra aplicación por fuera, por ejemplo con Maven desde el terminal o

186
00:12:06,960 --> 00:12:12,780
incluso trabajando en otro IDE como Eclipse, como NetBeans, podríamos tener, podríamos tener algún

187
00:12:12,780 --> 00:12:15,420
problema con los acentos y los caracteres especiales.

188
00:12:15,450 --> 00:12:19,110
Entonces por eso se recomienda este tipo de configuración, pero no es obligación.

189
00:12:19,600 --> 00:12:21,300
Bien, acá actualizamos.

190
00:12:21,840 --> 00:12:22,330
Estamos listos.

191
00:12:22,560 --> 00:12:24,480
Es simplemente un detalle, nada más.

192
00:12:24,630 --> 00:12:28,980
De hecho, si ejecutamos acá, no afecta en nada.

193
00:12:33,380 --> 00:12:35,940
Lo dejamos así y nos vemos en la siguiente clase.
