Domanda

Ecco la situazione:

In una ricca: dataTable in a4j: forma, a creare un a4j: commandLink per selezionare i valori e passarlo al bean con il jboss sintassi azione el

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

Questo funziona senza problemi.

Ma se ho ri-renderizzare il form per filtrare il DataTable con una chiamata AJAX, quando seleziono il valore, mi dà i risultati sbagliati: l'indice della selezione, ma i dati prima che il filtraggio

Tutte le idee?

Grazie Zack per avermi dato la giusta soluzione in soli 5 minuti.

Credo che il passaggio di parametri nell'azione tra parentesi è più elegante, ma, hey: questo funziona. :)

Grazie molto.

P.S. Sto modificando il titolo troppo.

È stato utile?

Soluzione

Provare a utilizzare:

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

e quindi accedere a tale parametro nella vostra azione tramite il requestParameter("myparameter") attraverso il FacesContext.

Come un lato nota, questo non è JBoss EL, è il linguaggio di espressione unitaria (EL). E 'solo una caratteristica di JSP / JSF, in generale, come specificato dal solarium.

Altri suggerimenti

Oltre alla risposta del Zack, direi che se è necessario estendere le espressioni EL in modo da avere la possibilità di chiamare il metodo con i parametri, è possibile utilizzare il biblioteca EL Funtori :

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

è la vostra DataTable popolate utilizzando una collezione annotato con @DataModel? Se è così provare ad estrarla dal contesto quando si filtra in modo che venga nuovamente richiesto.

ad es.

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

Mettere DataTable in un <a4j:region> ha lavorato per me. In questo modo, è ancora possibile utilizzare i parametri di JBoss EL.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top