Pregunta

Esta es la situación:

En una rica: dataTable en un a4j: forma, se crea un a4j: commandLink para seleccionar los valores y pasarlo a la judía con la sintaxis acción el jboss

action="#{bean.myaction(myparameter)}"

Esto funciona sin problema.

Pero si puedo volver a reproducir el formulario para filtrar la tabla de datos con una llamada AJAX, cuando selecciono el valor, me da los resultados incorrectos: el índice de la selección, pero los datos de antes de la filtración

¿Alguna idea?

Gracias a Zack por darme la solución correcta en sólo 5 minutos.

Creo que pasa dentro de una acción entre paréntesis es más elegante, pero bueno: esto funciona. :)

Gracias mucho.

P.s. Estoy editando el título también.

¿Fue útil?

Solución

Trate de usar:

<a4j:commandLink action="#{bean.myaction}">
    <f:param name="myparameter" value="paramValue" />
</a4j:commandLink>

y luego acceder a ese parámetro en su acción a través de la requestParameter("myparameter") a través de la FacesContext.

Como nota lateral, esto no es JBoss EL, es Expression Language (EL). Es sólo una característica de JSP / JSF, en general, como lo especifica del Sol.

Otros consejos

Además de la respuesta de la Zack, yo diría que si necesita extender las expresiones EL con el fin de tener la posibilidad de llamar al método con parámetros, puede utilizar el EL biblioteca Functors :

action="#{bean.myaction$[myparameter].action}"

Es el poblado tabla de datos usando una colección anotada con @DataModel? Si a fin de tratar de sacarlo del contexto cuando se filtra de modo que consiga volver a solicitar.

por ejemplo.

//In filter method
Contexts.removeFromAllContexts("yourDataModelCollection");

Poner el dataTable en un <a4j:region> trabajó para mí. De esta manera, se puede seguir utilizando parámetros JBoss EL.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top