1
00:00:00,210 --> 00:00:06,210
Bien, veamos un ejemplo ahora de listas select o desplegable para seleccionar, por ejemplo, un elemento

2
00:00:06,300 --> 00:00:09,240
de una lista, por poner un ejemplo, algún contexto.

3
00:00:09,330 --> 00:00:13,650
Acá tenemos el usuario y podría tener un atributo, por ejemplo, país.

4
00:00:13,740 --> 00:00:15,810
Cada usuario tiene un país asignado.

5
00:00:15,930 --> 00:00:21,510
Entonces en el formulario podríamos tener una lista select o desplegable o combobox para poder seleccionar

6
00:00:21,600 --> 00:00:23,250
el país del usuario.

7
00:00:23,360 --> 00:00:26,560
Bueno, lo primero es crear un atributo del tipo String.

8
00:00:26,740 --> 00:00:32,190
Primero, para el ejemplo vamos a partir de lo más simple que sea del tipo String y después lo vamos

9
00:00:32,190 --> 00:00:35,400
a emigrar y lo vamos a implementar para que sea el tipo de una clase.

10
00:00:35,430 --> 00:00:42,030
Por ejemplo, una clase país donde tenga atributos como el Heidy, el nombre, en fin, entonces private

11
00:00:42,210 --> 00:00:46,440
del tipo String país como siempre gué trans.

12
00:00:46,920 --> 00:00:50,820
Bajamos y clic derecho por acá.

13
00:00:51,570 --> 00:00:53,610
Source general, qué tran setter.

14
00:00:54,150 --> 00:00:55,770
Marcamos todos generar.

15
00:00:56,810 --> 00:01:02,760
Y está molesto, podríamos palier para que sea distinto de vacío con Not Empty, de que es un string.

16
00:01:03,020 --> 00:01:05,900
Si fuera un objeto sería Not null.

17
00:01:05,990 --> 00:01:13,220
Por ejemplo, del tipo de la clase país, pero como es un string not empty, guárdanos.

18
00:01:13,850 --> 00:01:18,590
Lo segundo, tenemos que poblar con datos datos de ejemplo esta lista select.

19
00:01:18,760 --> 00:01:24,080
Bueno, en un ejemplo con base auto vamos a ir a buscar los países esta lista mediante una consulta

20
00:01:24,230 --> 00:01:32,420
obtenemos un list, una lista de países y poblamos este select, pero para el ejemplo lo vamos a poblar

21
00:01:32,480 --> 00:01:34,430
con datos de un array list.

22
00:01:34,850 --> 00:01:36,950
Esta lista la podemos implementar acá mismo.

23
00:01:37,040 --> 00:01:42,650
Por ejemplo acá en form y pasar en el objeto model con atributos pasarlo los países.

24
00:01:42,710 --> 00:01:48,620
Eso sería una forma bueno y cuando se valida también en caso de que falla, también tendríamos que pasar

25
00:01:48,740 --> 00:01:50,870
los países para poblar el SELECT.

26
00:01:51,050 --> 00:01:57,200
Pero otra forma también creo que la vimos anteriormente es crear un método en el controlador y esto

27
00:01:57,200 --> 00:02:00,410
lo podemos reutilizar en todos los métodos antes del controlador.

28
00:02:00,530 --> 00:02:05,270
Y este método lo notamos con model atributo y le damos un nombre de forma automática.

29
00:02:05,300 --> 00:02:11,390
Cuando un método está anotado con model atributo, lo que retorna este método se pasa y se guarda en

30
00:02:11,390 --> 00:02:15,320
la vista como atributo y lo podemos utilizar, por ejemplo, en el formulario.

31
00:02:15,890 --> 00:02:20,270
Entonces justamente vamos a crear un método anotado con model atributo.

32
00:02:22,550 --> 00:02:29,600
Le damos un nombre bueno, importamos, le damos un nombre paìses, este nombre con el cual se pasa

33
00:02:29,600 --> 00:02:39,890
la lista, lo que retorna public retorna una lista de string con los nombres países y un nombre cualquiera.

34
00:02:39,950 --> 00:02:41,330
Por ejemplo países.

35
00:02:42,350 --> 00:02:44,240
Bien, voy a importar list.

36
00:02:45,800 --> 00:02:52,790
Bueno, de muchas forma podemos crear un ArrayList del tipo String y con el método Add agregar paìses,

37
00:02:52,970 --> 00:02:55,520
otra forma mucho más simple y más directa.

38
00:02:56,510 --> 00:03:02,660
Usar la clase A arrays, una clase Halpert que tienen método hash.

39
00:03:02,720 --> 00:03:03,230
Listo.

40
00:03:03,650 --> 00:03:05,360
Bien, voy a bajar acá.

41
00:03:06,440 --> 00:03:07,970
Bien y separÃ por Koma.

42
00:03:08,120 --> 00:03:11,040
Acá pasamos los elementos, los elementos son del tipo String.

43
00:03:11,450 --> 00:03:17,420
Entonces, separado por coma, este método va a retornar una lista del tipo list con estos elementos.

44
00:03:17,570 --> 00:03:18,770
Se fijan entonces?

45
00:03:18,770 --> 00:03:22,750
Bueno, primero nombre de países de España.

46
00:03:25,090 --> 00:03:27,820
México, Chile.

47
00:03:37,550 --> 00:03:39,710
Hilitos se fijan mucho más simple ahora.

48
00:03:39,770 --> 00:03:41,090
Bueno, esto es un atajo.

49
00:03:41,240 --> 00:03:49,040
Lo mismo que crear una red list y con el método ADD agregar estos nombre poises del tipo string s por

50
00:03:49,040 --> 00:03:49,490
debajo.

51
00:03:49,550 --> 00:03:52,770
Esto retorna una lista del tipo String.

52
00:03:52,970 --> 00:03:54,470
Se fijan con los países.

53
00:03:55,660 --> 00:03:57,370
Guardamos y qué faltaría.

54
00:03:57,460 --> 00:04:02,080
Nos vamos a la vista formulario, vamos a crear este div.

55
00:04:02,170 --> 00:04:07,360
Este campo acá al principio lo pegamos páis.

56
00:04:09,770 --> 00:04:11,980
País bueno, en vez de input.

57
00:04:13,140 --> 00:04:21,300
Esto acá lo cambiamos a Selecta, una lista select desplegable, el Heidy País le dice mantener el fiel

58
00:04:21,330 --> 00:04:21,790
también.

59
00:04:21,840 --> 00:04:27,840
Importante porque está mapeado este select al atributo país, al atributo país de la clase usuario.

60
00:04:28,380 --> 00:04:29,520
Acá se mapea.

61
00:04:31,440 --> 00:04:33,600
Pero bien, tenemos que cerrar el elemento.

62
00:04:33,660 --> 00:04:36,790
Siempre se abre y se cierra perfecto.

63
00:04:37,050 --> 00:04:41,010
Pero una lista select para seleccionar tiene que tener elementos, opciones.

64
00:04:41,260 --> 00:04:42,900
Entonces Braca, tenemos option.

65
00:04:44,750 --> 00:04:47,030
Y podemos tener una opción por cada país.

66
00:04:47,090 --> 00:04:52,320
Pero los países los tenemos acá en esta lista países modelo Attribute.

67
00:04:52,430 --> 00:04:54,770
Recuerden que con ese nombre se pasa a la vista.

68
00:04:55,550 --> 00:04:57,350
Ahora también podríamos omitir esto.

69
00:04:57,800 --> 00:05:03,200
Este nombre y por defecto se guarda o se pasa la vista con el nombre método, pero siempre mejor de

70
00:05:03,200 --> 00:05:04,310
forma explícita.

71
00:05:04,910 --> 00:05:05,870
Volvemos acá.

72
00:05:06,110 --> 00:05:11,750
Ya sabemos que la lista de países con el cual se pasa la dicta se llama países.

73
00:05:12,080 --> 00:05:14,720
Entonces creamos un option por cada país.

74
00:05:14,810 --> 00:05:18,350
Para eso tenemos que iterar con un hit de Tanvi.

75
00:05:18,940 --> 00:05:21,140
Entonces país dos punto.

76
00:05:21,320 --> 00:05:25,070
Este sería el objeto país que se crea en esta iteración.

77
00:05:25,160 --> 00:05:27,710
En este for por cada país de la lista.

78
00:05:27,720 --> 00:05:34,220
Entonces acá si no peso las llaves, la lista países que está definida en el model atributo acá.

79
00:05:34,340 --> 00:05:41,750
Recuerden lo que se retorna en este caso este ArrayList o lista un list de string que se guarda con

80
00:05:41,750 --> 00:05:43,340
el nombre países a la vista.

81
00:05:44,510 --> 00:05:46,310
Y acá lo utilizamos bien.

82
00:05:46,370 --> 00:05:54,850
Entonces, por cada país vamos a mostrar como elemento de SELECT, como una opción a seleccionar TH

83
00:05:54,950 --> 00:05:55,390
Text.

84
00:05:55,760 --> 00:05:58,790
Entonces sería el nombre visual país.

85
00:05:59,210 --> 00:06:05,450
Este país corresponde a cada país de la iteración, pero también se puede asociar a un valor, a un

86
00:06:05,450 --> 00:06:05,960
palio.

87
00:06:06,290 --> 00:06:12,170
Este es el nombre visual que se muestra en la lista y el valor que se envía al controlador, al método

88
00:06:12,170 --> 00:06:14,690
procesar que está mapeado a país.

89
00:06:14,810 --> 00:06:20,050
El valor es TH valeo, pero también país.

90
00:06:21,230 --> 00:06:26,900
Es decir, el mismo nombre del país de que es un array list del tipo string, es decir, solamente contiene

91
00:06:26,900 --> 00:06:28,100
el nombre del país.

92
00:06:28,340 --> 00:06:33,590
Por lo tanto, tanto lo que se muestra el texto o la opción como el valor que se envía es el nombre

93
00:06:33,590 --> 00:06:34,130
del país.

94
00:06:35,740 --> 00:06:41,890
Aunque también, por ejemplo, en el texto podría ser en nombre del país y en el Baley podría ser un

95
00:06:42,070 --> 00:06:43,030
identificador.

96
00:06:43,120 --> 00:06:45,250
El código, el país, el Heidy.

97
00:06:45,340 --> 00:06:52,060
En fin, eso después lo podemos ver con un ejemplo, utilizando una lista del tipo país que tenga el

98
00:06:52,060 --> 00:06:57,790
atributo Heidy o código del país y el nombre, o bien con un mapa de ñada con un map.

99
00:06:57,940 --> 00:07:03,970
Ahí pasamos el nombre y el valor, donde el nombre sería el código y el valor sería nombre país.

100
00:07:04,020 --> 00:07:06,700
Pero bien, eso lo podríamos dejar para después por ahora.

101
00:07:06,820 --> 00:07:10,150
De esta forma, algo simple me falta validar.

102
00:07:10,600 --> 00:07:11,980
Acá también sería país.

103
00:07:12,310 --> 00:07:15,610
En vez de identificar llega también.

104
00:07:17,310 --> 00:07:25,110
Está molesto, pero siempre es bueno tener una opción por defecto que diga, por ejemplo, seleccionar,

105
00:07:25,260 --> 00:07:35,100
seleccionar país o lo que sea, y con un valor, con un palio vacío de acá seleccionar.

106
00:07:37,970 --> 00:07:44,060
Entonces, seleccionar un país y por defecto ASIO, si no se selecciona y se envía el valor es vacío.

107
00:07:44,090 --> 00:07:48,230
Por lo tanto, va a variar y va a indicar que el campo es requerido.

108
00:07:48,500 --> 00:07:50,270
Guardamos y vamos a revisar.

109
00:07:51,260 --> 00:07:52,100
Levantamos.

110
00:07:54,740 --> 00:08:02,630
Perfecto país se fijan seleccionar acá tanto los países si envío, enviar el campo requerido porque

111
00:08:02,630 --> 00:08:04,130
todavía no has seleccionado ninguno.

112
00:08:04,190 --> 00:08:08,960
Si colocamos, por ejemplo España enviar perfecto.

113
00:08:09,320 --> 00:08:15,800
Ahora qué faltaría mostrar en nombre del país, en la plantilla, en la vista de resultado volvemos.

114
00:08:15,890 --> 00:08:16,850
Resultado.

115
00:08:18,150 --> 00:08:19,050
Voy a copiar.

116
00:08:20,750 --> 00:08:21,260
Peus.

117
00:08:23,080 --> 00:08:25,180
Guardamos bien España?

118
00:08:26,060 --> 00:08:28,730
Solamente 12 son dos dígitos.

119
00:08:29,670 --> 00:08:30,630
El Yussef naive.

120
00:08:33,440 --> 00:08:38,990
Alguna clave el correo, por ejemplo, 7 o alguna fecha?

121
00:08:40,220 --> 00:08:40,750
Enviar?

122
00:08:41,300 --> 00:08:41,840
Perfecto.

123
00:08:41,930 --> 00:08:42,950
España se fijan.

124
00:08:43,010 --> 00:08:44,840
Se envía sin ningún problema.

125
00:08:44,940 --> 00:08:49,380
Ésta sería la forma más simple de implementar una lista select desplegable.

126
00:08:49,500 --> 00:08:55,010
Bueno, con datos del tipo string de puesto lo podríamos cambiar emigrar para que el tipo dato en vez

127
00:08:55,010 --> 00:09:02,270
de que sea un string sea por ejemplo un map, un mapa de Java que contenga un identificador Leydi y

128
00:09:02,270 --> 00:09:04,670
el nombre a mostrar en la lista SELECT.

129
00:09:04,790 --> 00:09:09,860
Mejor aún, que también lo vamos a ver, que sea del tipo de una clase, por ejemplo, una clase país.

130
00:09:09,950 --> 00:09:13,310
Vamos a crear una clase modelo, así como usuario pero país.

131
00:09:13,430 --> 00:09:16,340
Y vamos a relacionar la clase usuario con la clase país.

132
00:09:16,460 --> 00:09:22,700
Y la clase país va a tener por ejemplo el Heidy que corresponde al valor que se envía y el nombre que

133
00:09:22,700 --> 00:09:26,150
corresponde a lo que se muestra en la lista SELECT.

134
00:09:26,240 --> 00:09:28,090
Continuamos en la siguiente clase.
