paginas navegacion libreria etiquetas entre ejemplo define componentes jsf jsf-2

navegacion - ui define jsf



Llama a mĂșltiples mĂ©todos de bean de respaldo al mismo tiempo (3)

¿Hay una manera de llamar a múltiples métodos desde diferentes beans de respaldo en JSF?

Tengo una aplicación que almacena información de usuario. Tengo múltiples beans de respaldo que se desglosan en horario, dirección, teléfono ... etc.

Cuando la aplicación carga inicialmente, todo funciona, pero como todas mis vistas son del tipo @ViewScope las listas de horarios, direcciones y teléfonos se mantienen incluso si se muestra un nuevo usuario.

Necesito configurar manualmente la programación, la dirección y las listas de teléfonos en nulo cuando el usuario se aleja de la persona que está viendo actualmente. Necesito llamar a un método en cada bean administrado en un momento determinado (cuando el usuario hace clic en un CommandLink).

¿Es posible llamar a múltiples métodos de bean en un commandLink?


Las respuestas aquí estuvieron cerca de funcionar para mí, pero también tuvieron que agregar paréntesis a los métodos en f: actionListener:

<h:commandLink action="#{jsfBean.submit}" value="execute multiple methods"> <f:actionListener binding="#{jsfBean1.actionListener()}"/> <f:actionListener binding="#{jsfBean2.actionListener()}"/> <f:actionListener binding="#{jsfBean3.actionListener()}"/> </h:commandLink>


Puede hacer que su CommandLink haga referencia a un método que, a su vez, llame a todos los métodos necesarios.


<h:commandLink action="#{jsfBean.submit}" value="execute multiple methods"> <f:actionListener binding="#{jsfBean1.actionListener}"/> <f:actionListener binding="#{jsfBean2.actionListener}"/> <f:actionListener binding="#{jsfBean3.actionListener}"/> </h:commandLink>

Usando el código anterior, los métodos en los beans tienen la firma (''predeterminada'') de actionListener(ActionEvent event)

cuando haga clic en el enlace de comando primero se ejecutará el método de envío. Después de eso, todos los demás ActionListeners se ejecutarán uno por uno ... Espero que ayude;)