Bien, continuamos creando el property editors para país, para modificar este dique íbamos a enviar
del país en el objeto completo país.
Entonces por acá, en el РАМКАХ Editors, vamos a crear una nueva clase, le vamos a llamar País Property
Editor Finalizar.
Bien, como siempre, Extend Property editor su puerto de lleva Vinz con click derecho, vamos a sobrescribir
el método Click Derecho Source o Be Right.
Y buscamos Zeth, haz texto por acá, Zet Aztec, lo marcamos.
Ok.
Bueno, acá se recibe el texto, en este caso el Heidy del país y lo tenemos que convertir.
Bueno, pero para convertir necesitamos el servis que creamos la clase anterior.
Entonces por acá tenemos el servis.
Recordemos el servis simplement que está anotado con servis.
Entonces lo que podríamos hacer es anotar esta clase como componentes brink para poder inyectarlo
importamos.
Bueno, recuerden que tenemos por un lado la anotación servis y la anotación component, pero en realidad
funcionalmente no tienen ninguna diferencia.
De hecho, si nos vamos acá a páis servis simplement control click es un estereotipo de componer.
Por lo tanto, servis es su componente.
Solamente tiene como nombre diferente como para indicar que es un servis.
Más que nada es como una semantica.
Es para indicar que este componente de Spring es del tipo servis, nada más.
Pero funcionalmente incluso podríamos anotar páis hierves, imprime con component y va a ser lo mismo
tanto con servis como con component.
Se inyecta y no tiene ninguna diferencia, solamente conceptual.
Es una semántica, nada más.
Entonces se casa más servis porque es un servicio y acá en el property editors usamos component, aunque
también podríamos usar acá servis y tem. funcionaría.
Se fija en pero es algo conceptual, nada más.
Bien, ahora que componente lo podemos inyectar del tipo de la interfaz peus service importamos service
y Auto Suirez.
Importamos.
Perfecto.
Entonces ahora vamos a buscar.
Bueno, acá esto lo quitamos.
En realidad esto en realidad no va.
Lo cambiamos por disputo set valio guardamos un objeto en este caso del tipo páis usando el service
punto fin.
O buscar por acá tenemos obtener por Heidy obtener por allí le pasamos el leidy, pero acá Leydi viene
del tipo string y acá lo guardamos como integer, es decir, lo pasamos como un entero.
Bien, entonces cómo lo hacemos?
Tenemos que convertir de hecho.
Bueno por acá podríamos colocar Integer Heidy igual quiete de acá los renombrados Heidy String.
Entonces, con integer punto parse int podemos convertir acá.
Acá pasamos el estric, hay 10 técnic, hoy convertimos, se fijan y lo pasamos acá.
Ahora para poder convertir a un entero tiene que ser un string numérico que represente un dígito, un
dígito entero.
Entonces ahí se convierte.
Lo pasamos al obtener por allí y obtenemos el objeto.
Por acá tenemos el país correspondiente y listo.
Bejan.
Eso es todo.
Ahora, qué tengo que hacer?
Tenemos que inyectar este property editor.
Como es un componente, lo podemos inyectar acá en el servis.
ÂTu Witten, el tipo páis property editor tal cual, una clase concreta en este caso no es una interfaz
ni nada por el estilo, porque en este caso no es necesario.
Solamente vamos a tener uno la implementación de este property editor ahora, en caso de que tuviéramos
más de una.
Bueno, ahí creamos una interfaz pero propia nuestra personalizada y tendremos que implementar esta
interfaz en nuestro property editor.
Acá.
País Editor importamos.
Y tenemos que registrar.
Por acá.
Pasamos la instancia.
Ahora, qué atributo del formulario o de la clase Entity país?
Y de qué tipo es país?
Muy importante el tipo.
Bueno, el tipo.
Si nos vamos acá al usuario, este tipo, el tipo país y el atributo país, que también está mapeado
al formulario.
Acá si nos vamos por acá, más arriba, acá país está mapeado al atributo país.
Acá a la tribu utopista Enfield.
Y esto importante.
Entonces ahora esto lo quitamos.
Ahora se mapea directamente al objeto país y no a un atributo del objeto país, ya que lo vamos a guardar
completo.
Entonces acá también, acá también.
Y todo esto de igual, excepto bueno, pait nombre acá sería País Heidi.
Ya que lo que vamos a enviar es el Heidy.
Ojo no es el código, es el Heidy, ya que acá en el Property Editors estamos buscando por.
Aunque también lo podríamos ir a buscar por el código, pero sería otro método buscar obtener por código
y en este foro o en la consulta que necesitemos realizar sería por el código y no por el Heidy.
Entonces es importante ese cambio páis punto Heidy y se valida el país.
El objeto país bien y guardamos, pues faltaría otro detalle por qué ahora lo que se envía?
Bueno, si bien se envía Leydi, pero se convierte este dí en el objeto país, pero acá tenemos que
validar por el país, por el objeto y no por un atributo tal como lo tenemos acá.
Entonces nos vamos a la clase usuario y en vez de Baldi acá sería Not null, porque validamos completamente
el objeto y en país ya no sería necesario empty.
Incluso lo podríamos quitar o lo podríamos comentar.
Ya que se valida el objeto completo, guardamos.
Guardamos también el controlador y estamos listo.
Quizás para revisar.
Bueno, acá tengo el usuario, el Baldy.
Lo voy a comentar.
Guarda bien en la vista resultado.
Ahora podremos probar.
Por ejemplo, País Código, País Heidy.
Código y país.
Nombre.
Bien.
Guardamos.
Vamos a revisar.
Levantamos.
Bueno, primero vamos a revisar.
Enviar?
Perfecto.
No hay ningún problema acá, si se fijan, se está valiendo por el string vacío.
Por qué se envía este carácter vacío y lo trata convertir a un entero a un lamber bueno y falla.
Entonces esto lo podríamos arreglar de la siguiente forma Volvemos al formulario ya.
Y acá lo tenemos.
Acá estamos enviando un carácter vacío, pero no es un entero.
Por lo tanto, en el Property Editors lo recibe.
Acá, acá se recibe.
Y lo trata convertir.
Trata de convertir un vacío en un entero y por eso lanzar excepción.
Bueno, bastante simple.
Acá preguntamos hay que validar con un if, por ejemplo if bueno de partiese distinto null y si tiene
caracteres, entonces acá tenemos el Lenka.
C Mayor a cero.
Y si es así?
Bueno, perfecto.
Ahí lo tratamos convertir, pero también acá podríamos validar con un trae y catch, porque en caso
de error, acá lo tenemos.
En caso de terror en Ámber fórmate excepción.
De hecho lo vamos a copiar.
Lo pudiera manejar con un troi cazzo.
Entonces, por acá bajamos.
Un trae
bien.
Y acá?
Bueno, si falla, se talio nul.
En caso de falla y acá también.
Entonces es distinto nul.
Y además se tiene un largo tratá de convertir ese verificÃ que sea un dígito, si lo convierte, perfecto.
Pero si falla, si no es un dígito, lo asignamos Anul.
Acá el valor.
Y lo mismo si es nulo, si es nulo o bien si el largo es igual a cero, sino que el contenido también
lo shinano.
Y con eso estamos listo.
Guardamos y enviamos de nuevo.
Se fijan?
No puede ser, no?
Entonces, como no seleccionamos, lo haría perfecto.
Ahora, por ejemplo, Chile.
Perfecto.
Ningún problema.
Bueno, y lo probamos.
La cuenta 7.
Alguna fecha en pie?
Perfecto.
Acá tenemos el país 3 con Edy, 3 CL El Código y País Chile en pie, el registro completo con todos
sus atributos y eso es gracias justamente a que convertimos el dato que estamos enviando.
El Heidy en el objeto completo utilizando el Property Editors y también el servis que realiza esta consulta,
ya sea a una base de datos, a una tabla o como lo hicimos a un ArrayList, en nuestro caso el ArrayList
o la lista en nuestro repositorio.
Incluso en estricto rigor, quizás faltaría o solamente bastaría con el trait catch.
Quizás este ahí podría estar demás porque independiente si es nulo o no es nulo si es un string vacío.
Acá van a hacer una excepción y acá lo manejamos en el tracas lo asignamos Anul.
Ahora si sea un dígito lo convierte perfecto, pero si falla siempre null, entonces igual para simplificar
esto lo podríamos quitar.
Bueno, son dos alternativas, una más estricta y la otra que al final con el trait catch va a funcionar
exactamente igual.
Incluso con source format de listo lo vamos a revisar.
Decepcionamos laureles.
Enter para refrescar selecciona el país.
Nada, simplemente enviamos.
No puedes ser.
Se fijan, claro, porque lanza la excepción el trail catch y lo manejamos ahí.
Dailey Asignamos Anul y por eso da este mensaje.
Si seleccionamos, por ejemplo, México, enviar perfecto.
Si seleccionamos Colombia.
Perfecto.
Enviar vejan hoy di6 có y Colombia funciona exactamente igual.
Entonces bastaría solamente con el trae y Katt nos vemos en la siguiente clase.