Bien, continuemos.
Vamos a ver nuestra lista Selleck con una clase país que está asociada al usuario.
Bueno, lo primero en formulario en nuestro proyecto nos vamos al package Models Models Domaine y vamos
a crear esta clase país.
Entonces una clase país finalizar con atributos, por ejemplo un Heidy Integer, Heidy del tipo String
código va a tener un Heidy y también el código del país y el nombre
bien método que trans setter.
Todos seleccionamos bien y qué faltaría.
Bueno, algún constructor para poder crear el objeto para que pase a estos parámetros el Heidy Código
y en nombre País click derecho.
Por acá buscamos constructor usando campos, marcamos los tres por defecto.
En ese orden quitamos el súper no necesario.
Íbamos a querer también otro constructor por defecto vacío.
No sé, por acá, constructor de la superclase.
Perfecto.
Y también quitamos el súper y el comentario.
Bien, entonces dos constructores, uno con parámetros y otro sin parámetros sources ordenar.
Por acá tenemos format bien guardados.
Ahí tenemos nuestra clase de yaba país que está asociada al usuario.
Por lo tanto, ahora usuario por acá, el atributo país que era del tipo String, ahora es del tipo
país.
Bueno, quitamos el not ente.
Recuerden que es para validar estric y no objeto.
Acá podríamos usar, por ejemplo no null, pero después vamos a ver.
Por ahora lo dejamos así.
Guardamos.
Bueno, obviamente marca error porque cambiamos de string a país.
Entonces vamos a copiar país y modificamos lo quieten setter por acá.
Entonces, qué país del tipo string y set país del tipo string?
Guardamos.
Estamos listo?
Bien.
Lo siguiente en el controlador.
Actualmente tenemos el Jasmeet este map y también tenemos por acá un list que asigna países pero del
tipo String.
Ahora tenemos que modificar esto o crear un nuevo método para el que cree esta lista, pero el tipo
list de país.
Entonces vamos a copiar, por ejemplo, este model atributo.
Lo pegamos acá arriba.
Vamos a llamar por ejemplo países o lista países.
Mejor lista y la P con mayúscula.
Lista países.
Es decir, una lista de objetos del tipo país.
Acá también nombre método.
Igual.
Ven, vamos a trabajar.
Para ordenar un poco.
Y por cada uno, bueno, hay que crear la instancia de país.
New New País bueno y recibe tres argumentos.
Recordemos primero el Heidy, vamos a colocar por ejemplo España 1, después creo que era el código
de buen nombre.
Entonces esa cacería s vamos a importar país.
Bien.
Y así por cada uno nos vamos a copiar por cada uno.
Después lo modificamos.
Y tenemos que cerrar acá.
Acá falta Lacoma.
Faltó acá también una coma.
Vamos a ordenar Format.
Indica falta cerrar también un paréntesis?
Parece que sí.
Format, source, format.
Bien.
Bajamos.
Cada vez tenemos que cambiar en vez de un list de Streak.
Sería de país perfecto.
Qué faltaría bueno cambiar acá los Heidy.
Y también los códigos, por ejemplo, México.
Acá tenemos Chile, Argentina, Perú.
Colombia y Venezuela.
Bien, ahí tenemos nuestro modelo, atributos, nuestra alito objeto.
Bueno, esto perfectamente podría ser una consulta la acetato que retorna una lista de países, por
ejemplo utilizando internet utilizando JPA con clases entity que están tapiadas a tablas del acetato
que contenga el Heidy, que contenga el atributo código y el nombre país.
Bien, entonces ahora tenemos que poblar con esta lista de países nuestro formulario.
La lista select acá.
Entonces el foreach acá sería lista países en vez de esto de acá mismo nombre con el cual lo tenemos
acá, lista países, pero bien, acá tenemos el punto país, punto bueno, en vez de talio por ejemplo
el nombre, queremos mostrar el nombre en el texto y como valor acá en el barrio, acá iría por ejemplo
el Heidy País, punto Didí.
Entonces por cada país de la lista países mostramos el nombre en la lista SELECT, pero el valor que
se envía es el Heidy perfecto.
Ahora vamos a probar, pero vamos a tener un detalle que tenga que solucionar.
Levantamos.
Y funciona perfecto.
Se fijan incluso ver código fuente acá en Balu muestra Heidy que está perfecto y el nombre en el texto.
Así que todo bien.
El problema es que si enviamos, por ejemplo a cambio un error no puede convertir el string.
En este caso el Heidy, porque recordemos que Leidy a pesar de que es numérico pero se envía como un
string, no se puede convertir este estadi al objeto país.
Se fijan y es porque estamos mapeando acá en el select.
El field es país.
Es decir, estamos poblando el valor.
El valioso país.
Punto Heidy en el campo, en el fiel país que es del tipo país por acá semejante.
Entonces un tipo numérico string no coincide con el tipo país y por eso el error.
Hay un mix match bueno, se puede solucionar de diferente forma usando un property editors que después
lo vamos a ver.
Pero una forma muy simple y muy fácil.
Volvemos acá y en vez de mapear el fiel a país lo mapeados al atributo Heidy del objeto país.
Decir usuario tiene país, pero país acá tiene el Heidy acá.
Entonces mapeados a Leidy y si estamos mapeando les di acá.
También tengo que validar por el Heidy y acá también y en el for que apunte acá a país punto y guárdanos.
Es importante que el field lo más importante que el field esté mapeado al atributo Heidy del objeto
país que a su vez es atributo del usuario.
Ya sé que no hay ningún problema ahí se pueden solamente Leidy no todo el objeto, solamente Leydi en
el objeto país.
Nada más el código y el nombre, no?
Aunque también podríamos escoger por ejemplo, que podemos colocar código código acá el value o value
sea código.
En fin, validar por código o puedc por Heidy.
Bien, vamos a guardar lo siguiente en resultado.
Bueno, como se pueblas solamente Leidy que colocábamos usuario puntu país, punto Heidy y guárdanos,
volvemos, actualizamos, se fijan hoy ya no da error, por ejemplo si seleccionamos Mèxico que se Leydi
2.
12 ñón, alguna clave, algún correo?
Cuenta 7 y alguna fecha?
Enviar.
Se fijan hoy día 2.
Así que funciona perfecto.
Está enviando el Heidy del país.
Pero solamente Leydi, porque por ejemplo, si colocamos acá código o nombre, obviamente es nulo.
Es vacío.
De que solamente empleamos como value acá válido el Heidy acá y se puebla acá, por ejemplo, actualizamos.
México.
Se fijan, el código no se puebla solamente Leidy.
Entonces lo dejamos como estaba.
Bien.
Ahora, qué pasa con la validación?
Porque.
Porque si volvemos y queremos validar no se valida.
Por ejemplo, lo dejamos acá en seleccionar.
Enviar.
No se valida.
No está valiendo.
Bueno, para eso tenemos que validar el Heidy.
Qué es lo que se envía acá?
Ya lo que se está poblando acá.
Entonces Leydi es lo que se valida.
Por lo tanto en país acá validamos el Heidy, pero es del tipo Integer.
Es una clase, un objeto y no es una cadena.
No es un string.
Si tiene que validar con Onur.
Es decir, bueno, en realidad es un objeto que es el tipo de una clase.
Pero siempre con Onur.
Entonces guardamos.
Pero tampoco se aplicar.
Por ejemplo, si volvemos y trato tampoco se aplica.
Bueno, aquí faltaría faltaría el usuario, porque el que se valida finalmente es el usuario, no el
país.
Pero acá podemos indicar con la anotación Valli que se valida también el país.
Entonces con Baley indicamos que se validen los objetos relacionados.
Importamos.
Guardamos.
Voy a bajar acá los import.
Y ahora sí que sí.
Enviamos no puedes Enol, se fijan?
Entonces ahora está validando el país.
Si colocamos, por ejemplo Chile enviar.
Perfecto, se valida.
Bien, bien.
Ahora, qué pasa si quiero colocar el código en vez de Leidy, por ejemplo?
Vamos a formulario.
Bueno, tendré que modificar todo en vez de Heidy código.
Yasi por CA1 acá sería bueno código, acá Leydi también había faltado el punto y ahí lo dejamos punto
código, punto código, acá en Baldi, punto código, que es lo que se envía y se puede.
Acá muy importante que todos sean siempre iguales.
Fiel donde se puebloy y lo que se envía.
Acá bueno, también cuando se valida, validamos el código.
Resultado bueno, en vez de.
País.
Punto y visitilla, punto código, guardamos país, guardamos el formulario y qué faltaría.
Bueno, en país.
Acá tenemos que validar, quitamos este, lo quitamos o lo comentamos.
Da lo mismo, lo voy a quitar acá también y tenemos que validar en código, pero es un string.
Entonces sería Not empty.
Importamos.
Guardamos.
Entonces, ahora sí que sí.
Por ejemplo, enviar y Candem mensaje el campo requerido.
Claro, porque es un string.
Es decir, no puede ser vacío.
Es requerido.
Seleccionamos, por ejemplo, Argentina 12.
Bueno, todo por defecto.
Enviar ahora se envía a Argentina el código, no el Heidy.
Entonces podemos decidir cuál es nuestra llave.
Volvemos.
Bueno, acá actualizamos ver código fuente y acá tenemos en Baley.
Ahora es el código.
Y siempre muestra el nombre país.
Bien, pero como decía, siempre se envía un solo valor, el valor que estamos mapeando acá en el valio.
Acá se envía ese valor y se puebla acá en el campo, en país.
Punto el atributo, punto Heidy o punto código.
Pero qué pasa si quiero enviar el objeto completo?
Quiero enviar el Heidy, quiero enviar el código y el nombre?
Quiero enviar el objeto completo peus.
Bueno, en ese caso ahí está.
Me obligado a utilizar un property editor y lo tendríamos que registrar con Init Pinder acá.
Entonces tendríamos que crear nuestra propia clase Editors o Property Editors para obtener este código
o estadi que estamos enviando y lo convertimos al objeto país correspondiente con todos sus datos,
ya sea con una consulta glaseada.
Tenemos el objeto país y lo asignamos con el set valeo, pero bueno, eso lo vamos a ver la siguiente
clase, pero en la mayoría de los casos vamos a necesitar solamente el Heidy o el código el identificador,
porque a través de ese código bueno se puede persistir la relación, se puede guardar y no necesario
tener todos los geto completos, no es necesario el nombre ni los demás atributos.
Eso es en la mayoría de los casos.
Basta con enviar el código o el Heidy y el objeto.
Con esa información se puede recuperar del Ayato o del medio persistente que estemos utilizando.
Pero bueno, de todas formas la siguiente clase.
Vamos a ver cómo recuperar este objeto completo utilizando un property editors.
Otra alternativa.
Nada más.
Nos vemos.