Desarrollo WEB.


Las practicas de programación orientadas a la web son muy cambiantes en el tiempo. Es necesario conocer e implementar tecnologías, conocer lenguajes,integrar comunidades,usar Ides, etc, recientes, para responder al mercado que se acerca.

miércoles, 13 de junio de 2012

Llamar un controlador JSF desde otro controlador (llamados entre ManagedBean)


Los managedBean o controladores son muy parecidos a las partitionClass del framework .Net
Este es el archivo en el que generamos logica de negocio y operaciones entre objetos(entidades).
Una de las necesidades basicas en la implementacion de JSF en nuestros proyectos j2ee, es el tener que asignar valores desde un managedBean a otro managedBean en el caso ejemplo de factura y detalles de factura,en este caso es necesario ingresar detalles a una factura pero se nesecita heredar el id del padre(factura).

@ManagedProperty("#{ingenieriaProductoPiezaBaseController}")
private IngenieriaProductoPiezaBaseController ingenieriaProductoPiezaBaseController;
//generar getter ...and setter...

Tener cuidado que al hacer llamados ciclicos se genera error, es decir si se llama un controlador y este llama al que lo llama, se genera una secuencia circular barbara. 
En glassfish se reporta el siguiente error.

at java.lang.Thread.run(Thread.java:722)
Caused by: com.sun.faces.mgbean.ManagedBeanCreationException: No se puede crear el bean administrado ingenieriaProductoController.  Se han encontrado los problemas siguientes:
     - El bean administrado ingenieriaProductoController contiene referencias cíclicas.  Ruta de evaluación: ingenieriaProductoController -> ingenieriaProductoPiezaBaseController -> ingenieriaProductoController.
at com.sun.faces.mgbean.BeanManager.create(BeanManager.java:265)
at com.sun.faces.el.ManagedBeanELResolver.resolveBean(ManagedBeanELResolver.java:244)