Bien, vamos a levantar y vamos a ir al formulario.
Porque quiero ver un tema.
Qué pasa si quiero ver, por ejemplo, o quiero mostrar valores por defecto del país en el formulario?
Es decir, que te seleccionado, por ejemplo, España, Chile o cualquier otro.
Y también los roles dejar marcado por defecto el rol usuario.
Bueno, y para eso tendríamos que en el método GET de formulario.
Acá pasar estos valores por defecto es muy útil, por ejemplo, para pasar datos por defecto tal como
tenemos acá el John Doe, el nombre apellido identificador.
Pero también si queremos editar un registro, por ejemplo ir a buscar al usuario por el Heidy al Ayato
lo obtenemos, mostramos su valores en el formulario y lo queremos modificar.
En caso de trabajar con pasearlo por ejemplo con persistencia.
Pero bien, acá la idea es valores por defecto.
Entonces mi formulario, la idea de que país esté seleccionado en cualquiera, por ejemplo en Chile
y rolee este mercado por ejemplo con usuario.
Ve cómo lo abarcamos?
Cómo lo hacemos?
No vamos al código y acá en Get Mapping en el formulario usuario punto set país.
Bien, y un pie por defecto lo tenemos, por ejemplo.
Bueno, cualquier país nos vamos al servis de país implementé.
Por ejemplo, Chile, pueden escoger el que quieran.
Lo copio.
Voy a cerrar y lo pegamos acá.
Guardamos bien.
Si actualizamos, hacemos un refresco.
No pasa nada.
Digan no se carga Chile.
Por qué?
Bueno, por detrás de escena el Ford va comparando.
Cuando se despliega la lista, va comprando cada país con el objeto país que tenga el usuario, pero
esta comparación lo hace a través del Heidy de los objetos.
Bien, veamos el código para comprenderlo un poco mejor.
Acá tenemos el SELECT y en el select las opciones y acá tenemos un Ford, un hit por cada país.
Bueno, el valor es el Heidy del país y tenemos que comparar esta edic del país con el campo, con el
campo país.
Recordemos que el usuario tiene el atributo país y está mapeado a este atributo.
En el controlador asignamos el país, por lo tanto, acá tenemos el objeto país.
Pero si se fijan, es un objeto, es una instancia de país, mientras que acá el valor es Haití.
No podemos comparar un Heidy con el objeto país de forma directa, porque lo que intenta hacer, como
es un string, intenta comparar con la representación de String del objeto país.
Pero el método string del objeto país es distinto a Estadi y por eso nunca se selecciona.
Entonces lo que tengo que hacer es implementar el método to string de la clase país para que retorne
el Heidy como un string.
Y eso es todo.
Entonces implementamos el método String que retorna el valor de Leidy y ahí sí que se puede comparar
con el valor de cada Heidy de la lista por cada país.
Entonces cuando coinciden, cuando son iguales, automáticamente el SELECT lo marca, los selecciona.
Bien, para eso nos vamos al controlador.
Y hacemos un click acá, un control, click.
Y en esta clase en país, por acá abajo, con click derecho source o right.
Marcamos tu estric?
Ok.
Y acá colocamos, disputo Didí.
Quitemos el comentario.
Pero acá retorna un string y el Heidy es del tipo Integer.
Por lo tanto no coincide.
Pero no importa.
Convertimos a Estric.
Dis.
Punto di.
Punto.
Tu stink entonces va a retornar el Heidy como un string y Estadi permite a time lif marcar o seleccionar
cuando ambos Heidy de cada elemento de la lista coincide con Leydi del país que tenemos seleccionado.
Es decir, que tiene el usuario acá que le asignamos acá.
Entonces compara cada país del SELECT por este país pero a través de Leidy.
Entonces por eso tenemos que implementar el Tultepec para que lo deje seleccionado.
Bien, ahora actualizamos y está marcado en Chile se fijan.
Es muy importante el método toString.
Ahora, cómo podemos implementar algo parecido con roles?
Bueno, acá es un poco más complicado porque es un arreglo.
Es decir, es un arreglo de roles, pero también el usuario tiene otro arreglo de roles.
Lo primero nos vamos a controlador también.
Set?
Roles.
Y acá pasamos una lista, pero bien podemos usar Arraiz Punto as list y separÃ por Koma, pasamos los
roles.
Por ejemplo, nos vamos a rol servis implemento.
Y voy a pasar solamente el usuario.
Rol usuario concedidos, lo copio, volvemos.
Y lo pegamos acá.
Perfecto.
Bueno, guardamos, se actualizamos.
No pasa nada, se fijan, no hay ningún resultado, no se marca el usuario.
Bueno, es que tenemos que comparar una lista de los checkbox con la lista de roles del usuario.
Nos vamos al Ventilla a formulario, nos vamos a roles y en el input por acá.
Bueno, voy a bajar con un enter th 2 punto checked de que tengo que implementar una función un gel
de Tenerife si peso las llaves y con el gato list usamos list@ el Halpert para trabajar con listas o
con arreglos.
Punto contains.
Es decir, si esta lista que vamos a pasar por argumento acá recibe dos argumentos la lista por ejemplo
usuario, puntos, roles, los roles del usuario.
Si en esta lista está contenido este rol, el rol del ID de la iteración, entonces si está contenido
este rol.
La idea de que lo deje marcado lo marque.
Pero también muy parecido que un país no tiene cómo comparar, no tiene cómo saber si este rol está
dentro de esta lista.
Pero para eso, para que se pueda comparar, tenemos que implementar el método equals en la clase error.
Pero de esta forma vamos a guardar.
Vamos acá al navegador.
Actualizamos.
Se fijan, no pasa nada.
Entonces vámonos a la clase.
Error.
Entonces, cuando es una colección, iba comparando acá podemos implementar el método y es.
Entonces Source obert right?
Marcamos y cual puerta.
Bueno, lo primero es comprar objeto cada objeto, es decir, de esta lista de Lizz, cada objeto.
Con la lista.
Con esta lista cita contenido en la lista de los usuarios.
Entonces, acá lo primero de convertir este tipo Hoggett, que genérico a un tipo Rohr, hacemos el
často a rol.
Entonces, con paréntesis rol guárdanos.
Perfecto, entonces ahora primero hay que preguntar que Leydi del objeto rol del objeto en cuestión.
Qué estamos comparando?
Si el Heidy sea distinto, nulo disputo Heidy, es decir, que Leydi exista.
Perfecto.
Si existe compramos el Heidy de este objeto del objeto en cuestión.
Punto equals.
Con el Heidy del rol que sea, pasando de cada objeto, rol de la lista.
Punto Quiet Heidy.
Entonces, en definitiva, compara el Heidy del objeto de la instancia por cada Heidy de cada rol que
se pasa por argumento.
En otra palabra, en la plantilla.
Este es el error.
Nuestra clase.
El dice y di que se compara con cada Heidy de la lista de roles del usuario.
Bien, estamos listos.
Tenemos que guardar acá.
Actualizamos y lo marco, se fijan.
Si volvemos al código nos vamos al controlador y colocamos otro rol.
Por ejemplo, Ross Servis simplement vamos a colocar moderador.
Acá se para por Koma.
Guardamos, actualizamos, se marca usuario y moderador, pero la idea dejar uno solo.
Bien, volvamos a Roma.
Este validacion sería la mínima, la mínima arquería, la básica, pero se recomienda siempre primero
preguntar, por ejemplo if si 10.
Es decir, esta misma instancia del objeto es igual a la instancia del objeto retorna mostruo.
Es decir, se deja marcado cuando true se deja marcado cuando fols no se marca.
Entonces compramos la instancia del objeto cuestión con cada instancia de los objetos que están pasando
por argumento, si son iguales en instancia en referencia retorna true.
Y también tenemos que validar que el tipo de este objeto sea también una instancia de error.
Porque si no es instancia de rol, retornamos forzo.
Eso también puede ser una validación extra.
If distinto contiene aclamación paréntesis objeto instanceof de error, entonces, si no es una instancia
error el objeto objeto que se pasa por argumento.
Los traumas forzo.
Perfecto.
Ahora si es instancia Herron hacemos el cast a rol y comparamos los Heidy y eso todo lo guardamos.
Bueno, el resultado es exactamente el mismo, pero la validación es más estricta.
Mejor digan que ha marcado acá el usuario.
Bueno, y también acá el país.
Ahora sí que sí estamos listo.
Nos vemos en la siguiente clase.