Frage

Hier ist die Situation:

In einer reichen: Datatable in einer a4j: Form, erstelle ich ein a4j: command die Werte auswählen und auf die Bohne passiert mit der Jboss el Aktion Syntax

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

Das funktioniert problemlos.

Aber wenn ich die Form wieder macht die Datentabelle mit einem Ajax-Aufruf zu filtern, wenn ich den Wert auswählen, es gibt mir die falschen Ergebnisse: den Index aus der Auswahl, aber die Daten aus der Zeit vor der Filterung

Irgendwelche Ideen?

Danke Zack dass sie mir die richtige Lösung in nur 5 Minuten.

Ich denke, vorbei Parameter in der Aktion in Klammern elegantere ist aber, hey: das funktioniert. :)

Danke sehr.

P. S. Ich bin die Bearbeitung der Titel zu.

War es hilfreich?

Lösung

Versuchen Sie es mit:

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

und dann Zugriff auf diesen Parameter in der Aktion über die requestParameter("myparameter") durch die FacesContext.

Als Randbemerkung, ist dies nicht EL ist jboss, dann ist es einheitliche Ausdruckssprache (EL). Es ist nur eine Funktion von JSP / JSF im Allgemeinen, wie von Sun angegeben.

Andere Tipps

Neben der Antwort der Zack, würde ich sagen, dass, wenn Sie brauchen, um die EL-Ausdrücke zu erweitern, um die Möglichkeit zu haben Methode mit Parametern aufrufen, können Sie die verwenden EL Funktoren Bibliothek:

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

Ist Ihre Datentabelle mit einer Sammlung mit @DataModel kommentierten bevölkert? Wenn ja versuchen, es aus dem Kontext zu entfernen, wenn das Filtern, so dass es wird erneut angefordert.

zB.

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

Setzen der Datatable in einem <a4j:region> für mich gearbeitet. Auf diese Weise können Sie immer noch JBoss EL Parameter verwenden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top