2016-05-22 17 views

Antwort

0

Ich denke, Ihre beste Wette es diese zwei oder mehrere Methodenaufrufe in einem Convenience-Methode in der Backing Bean zu kombinieren.

Auf diese Weise kann auch dafür sorgen, dass sie in einer konsistenten Reihenfolge genannt werden:

public void combinedMethod() { 
    callBeanMethodA(); 
    callBeanMethodB(); 
} 

Dann rufen Sie einfach die einzige bequeme Methode von Ihrem Zuhörer:

<b:navLink ... onclick="ajax:beanName.combinedMethod" /> 

Weitere Vorteile von diesem Ansatz wäre eine bessere Lesbarkeit und Wiederverwendbarkeit und Wartbarkeit, da Sie die kombinierte Logik zentral definiert haben.

+0

Das ist mein erster Gedanke war, zu. Auf der anderen Seite widerspricht es dem Ziel der Orthogonalität. Ich habe es in der aktuellen Version von BootsFaces nicht implementiert, aber es gibt keinen Grund, es nicht zu implementieren. Heute Abend möchte ich es versuchen. –

0

Eigentlich funktioniert es. Es ist nur ein bisschen einfacher als du dachtest. Lassen Sie die zweite ajax: Präfix, und die Dinge funktionieren:

JSF-Markup:

<b:messages id="messages" /> 
<b:commandButton value="Click me!" 
       onclick="ajax:menuView.save();menuView.reload()" 
       update="@form"> 
</b:commandButton> 

Java Bean:

@ManagedBean 
public class MenuView { 
    public void save() { 
    addMessage("Success", "Data saved"); 
    } 
    public void reload() { 
    addMessage("Success", "reloaded"); 
    } 
} 

enter image description here