Übergabe-parameter a4j:ajax

Wir ein Upgrade von jsf 1.2, jsf 2.
Wir verwenden apache myfaces 2.1 und rich faces 4.3.

Unten ist der xhtml-code :

Vor der Migration :

<h:selectBooleanCheckbox id="comp1" value="#{bean.select}">
                        <a4j:support event="onclick" ajaxSingle="true" actionListener="#{bean.processInput}" reRender="compId">
                                <f:param name="name" value="paramValue"/>
                            </a4j:support>  
</h:selectBooleanCheckbox>

Übergeben wir einen parameter mit und übernehmen Sie die parameter in der actionListener-Methode als : (String)context.getExternalContext().getRequestParameterMap().get("name1");

Nach Der Migration :

<h:selectBooleanCheckbox id="comp1" value="#{bean.select}">
                <a4j:ajax event="click" listener="#{bean.processInput}" execute="@this" render="compId"/>                  
</h:selectBooleanCheckbox>

Ich soll ein parameter übergeben werden um die Bohne.processInput-Methode hat folgende Signatur :

public void processInput(AjaxBehaviorEvent event){

Laut diesem post - Probleme in der Weitergabe-parameter in der f:ajax , die wir nicht verwenden <f:param> (seine nicht funktioniert
auch) und wir sind nicht mit EL 2.2 die Regeln, die übergabe-parameter in der Signatur der Methode.

Da wir Sie nicht verwenden Kontext.getApplication().evaluateExpressionGet, die aufgrund von Einschränkungen in unserer xhtml-Seite die option nur verfügbar ist
verwenden <a4j:param name="" value="" assignTo=""/>.
Aber das muss eine variable definiert, in der Bohne, dass code ändern.

Also meine Frage ist können wir übergeben einen parameter aus dem UI-listener im zweiten Fall und ohne Veränderung der code.

InformationsquelleAutor Atul | 2014-01-02
Schreibe einen Kommentar