2012-01-30 26 views
17

En mi proyecto JSF 2.0 (en JBoss AS 7), me gustaría en mis formas ajax presentado para mostrar un poco de condición de icono desencadenó comenzará el y fases completas, a deja que el usuario final sepa que algo todavía está sucediendo.paso de parámetros extra para f: función onevent ajax

El primefaces p:ajaxStatus no es útil aquí, ya que me gustaría tener muchos iconos diferentes en diferentes lugares de mi página.

Encontré un poco de la solución en esta pregunta: "How show different ajax status in same input?", pero todavía tengo un problema: para que mi función javascript sea reutilizable, necesito proporcionar un parámetro adicional a la llamada.

he hecho algo como esto:

<h:commandLink value="do something boy!"> 
    <f:ajax render="@form" execute="@form" listener="#{myBean.doStuff}" 
     onevent="showProgress" /> 
    <f:param name="extraParam" value="extraValue" /> 
</h:commandLink> 

y puedo ver el parámetro "extraParam" enviado al servidor a través de la solicitud, pero en mi método de Javascript showProgress no puedo recuperarlo a través del único parámetro dado.

Así que mis preguntas es: puedo ofrecer a mi método de Javascript f:ajax onevent un parámetro additionnal través f:param (o tal vez f:attribute, o cualquier otra cosa)?

Respuesta

38

Envuélvalo en una función anónima en donde lo pasa como argumento adicional.

<h:commandLink value="do something boy!"> 
    <f:ajax render="@form" execute="@form" listener="#{myBean.doStuff}" 
     onevent="function(data) { showProgress(data, 'extraValue') }" /> 
</h:commandLink> 

con

function showProgress(data, extraParam) { 
    // Use "data" argument the usual way. 
    // The "extraParam" argument will contain "extraValue" in above example. 
} 
+3

OWW, inteligente de verdad! –

+0

De nada. – BalusC

+0

¿Puede este 'valor extra' ser una expresión jsf? Quiero decir, puede ser algo así como 'onevent =" función (datos) {showProgress (data, '# {myBean.whatever}')} '? Thx! – dcalap

Cuestiones relacionadas