Foro sobre Java EE > Pasar parametros entre controladores JSF2
- En JSF 1.2 y anteriores podías utilizan un request bean específicamente para ese fin. Así lo hacia Java Studio Creator, el antecesor del infame Visual Web Pack.
- Puedes hacerlo de la manera tradicional empleando el tag <f:param /> dentro de un commandButton, commandLink, etc.
- JavaEE6 a través de CDI ofrece una solución mas sofisticada conocida como "Conversation".
Saludos,
Saaaludos!!!
Con el JSF 2.0 solo basta con una anotación para que tu controlador este en sessión y pueda ser accedido por otros controladores.
Si estas empleando JSF bajo la especificaciónd e JAVAEE5 debes menterlos en la sesión ya que es el único scope comun entre varias páginas, ya sea como un parámetro o atributo representado por un TAG de la especificación de JSF o directamente en el BackingBean, sin embargo, en frameworks como SEAM o en la especificación de jAVAEE6 ya existen contextos conversacionales.
Seria bueno saber cual es el propósito de ui solicitud, asi podria enfocarte mejor.
Pues yo tengo el mismo problema. Me explico, yo tengo en una pantalla un buscador y cuando pulso en el botón buscar, se accede a otra pantalla con una tabla y los resultados de la busqueda. Pero en esta segunda pantalla hay una buscador avanzado donde me gustaría mostrar los parametros de busqueda que seleccione en la primera pantalla.
No creo que sea conveniente que en el @ManagedBean ponga la anotación @SessionScoped no??
Alberto, el caso tuyo se puede resolver de manera sencilla mediante @ConversationScoped. Echale un ojo a la documentación de Weld.
Como es la forma correcta de pasar objetos(parametros) entre controladores en jsf2, al navegar desde una pantalla a otra, sin meterlos en sesión(que es como lo estaba haciendo hasta ahora).