Java Server Faces

Tengo un problema al llenar un combobox usando JSF mis etiqueta tag es la siguiente:

 

Lo que necesito es llenar tal combobox con las ciudades que tenga en mi base de datos, ya tengo mi bean Persona el cual tienes un atributo "ciudad" de tipo String, de igual forma tengo un atributo "ciudades" de tipo ArrayList, el cual lleno con las ciudades que existen en mi base de datos cuando se manda a llamar su metodo get (getCiudades). El bean ya lo declare en mi faces-config.xml:

 

Me manda la siguiente exepcion:
 

Espero me puedan ayudar, gracias de antemano.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Ya pude resolverlo

Ya pude llenar el "h:selectOneMenu" de esta manera:

En el JSP:
 

En el faces-config.xml:
 

Bean persona:
 

Bean Ciudad:
 

Tengo algunas dudas: Estoy integrando JSF y Hibernate en una aplicacion de ejemplo.

1. Es correcto que el metogo getListaCiudades llene el combo?, si es asi por que se manda a llamar dos veces en el JSP lo que genera que se llene mi combo con datos repetidos? ( Lo solucione limpiando mi ArrayList "listaCiudades").

2. Es correcto que use los mismo beans de mapeo del hibernate como beans de respaldo de JSF?

3. Alguien tiene algun manual o tutorial donde expliquen como integrar Hibernate con JSF?

Re: JSF y Hibernate

¡Gracias por publicar la respuesta! Ojalá y todos hicieran lo mismo una vez que resolvieran sus problemas. Además los ejemplos son muy legibles. Me gusta este post.

1. Es correcto que el metogo getListaCiudades llene el combo?, si es asi por que se manda a llamar dos veces en el JSP lo que genera que se llene mi combo con datos repetidos? ( Lo solucione limpiando mi ArrayList "listaCiudades").

¿Estás aseguro que se manda llamar dos veces? Yo creo que no es así.

2. Es correcto que use los mismo beans de mapeo del hibernate como beans de respaldo de JSF?

Yo lo hago siempre que puedo. Me gusta programar orientado a objetos, donde una clase encapsula datos y comportamiento. Detesto los beans tontos que nada más tienen datos y los beans "procedurales" que sólo tienen comportamiento.

3. Alguien tiene algun manual o tutorial donde expliquen como integrar Hibernate con JSF?

Mejor usa Seam Framework, ya ambos vienen integrados muy bien.

Saludos

Javier Castañón

Gracias por contestar.

Con respecto a la primera pregunta (Es correcto que el metogo getListaCiudades llene el combo?), en mi JSP tengo esto:
 

ciudad es un atributo del Bean Persona y listaCiudades es un atributo del Bean Ciudad, hasta aqui todo bien. Bueno quiero entender que ciudad y listaCiudad por defecto van a sus respectivos metodos getter's, si antes fueron seteados muentran informacion si no aparecen vacios ok, bueno en el metodo "getListaCiudades()" recupero desde mi base de datos las ciudades para mostrarlas en el combo, pero me muestra datos repetidos, si en mi base tenia tres ciudades me aparecen seis dos de cada una, lo resolvi haciendole un .crear() a mi lista de ciudades antes de consultarlas para que esto no me pasara, pero no se si esto este bien por que cada ves que se cargue el respectivo JSP hara una consulta a la Base de Datos y si en mi formulario tengo 10 combos, serian 10 consultas a la Base cada ves que se recargue el JSP.

Es correcto que el metogo

Es correcto que el metogo getListaCiudades llene el combo?

Sí, es correcto, lo que es horrible es que en cada llamada al método te des una vuelta a la base de datos. Si aparecen datos repetidos es probablemente algo de lo que debas culpar a tu DAO. Tal vez Hibernate ya había llenado la lista, y tu DAO es el que los repite.

Saludos

Javier

Otro problema con el combo :(

Tengo el siguiente problema, mi combo ya se llena de manera correcta como lo mencione anteriormente. Pero cuando quiero ontener los valores de mi formulario me genera el siguiente problema:

sourceId=j_id_id16:j_id_id28[severity=(ERROR 2), summary=(Error de conversion en el valor puesto 'beans.Ciudad@7c233a' del modelo 'null Converter'.), detail=(Error de conversion en el valor puesto 'beans.Ciudad@7c233a' del modelo 'null Converter': excepción de: {2})];|WARNING: FacesMessage(s) have been enqueued, but may not have been displayed.

sourceId=j_id_id16:j_id_id28[severity=(ERROR 2), summary=(Error de conversion en el valor puesto 'beans.Ciudad@7c233a' del modelo 'null Converter'.), detail=(Error de conversion en el valor puesto 'beans.Ciudad@7c233a' del modelo 'null Converter': excepción de: {2})]

En mi JSP tengo lo siguiente:
 

En Persona.submit solo tengo unos Systems.out.println() para imprimir lo que el usuario ingreso al formulario funciona si al formulario le quito el combo, por lo cual deduzco que el problema se encuentra ahi, Persona.ciudad es de Tipo Ciudad y Persona.listaCiudades es un ArrayList con objetos de tipo Ciudad, no entiendo cual es mi error :(

Imagen de daxter3000

Paquete DAO

Buenas, me podeis hacer un poco la idea de lo que contiene el metodo getCiudades, es que aparece en el paquete dao.Metodos.getCiudades y no me aclaro muy bien.

Gracias!!