Mehrere action-Listener mit einem einzigen Befehl Komponente in JSF
Ist es möglich, zum aufrufen von mehr als einer listener-Methode mit einem einzigen Befehl-Komponente? Zum Beispiel,
Blick scoped bean:
@ManagedBean
@ViewScoped
public final class ViewScopedBean implements Serializable
{
@ManagedProperty(value = "#{sessionScopedBean}")
private SessionScopedBean sessionScopedBean; //Getter/Setter.
private static final long serialVersionUID = 1L;
public ViewScopedBean() {}
public void action()
{
//Do something.
sessionScopedBean.action();
}
}
Ein session-scoped bean:
@ManagedBean
@SessionScoped
public final class SessionScopedBean implements Serializable
{
private static final long serialVersionUID = 1L;
public SessionScopedBean () {}
public void action() {
//Do something.
}
}
Einen Befehl-Taste wie die, die unten gegeben werden,
<h:commandButton value="Action" actionListener="#{viewScopedBean.action}"/>
ruft die Methode action()
im ViewScopedBean
das wiederum ruft die action()
Methode in SessionScopedBean
durch die Injektion eine Instanz der bean.
Ist es irgendwie möglich das gleiche tun auf XHTML, so dass ein injizieren müssen eine Bohne, nur um eine Methode aufzurufen, die beseitigt werden können?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
<f:actionListener Bindung>
:Hinweis auf die Bedeutung der Klammern in EL. Weglassen von Ihnen würde in diesem speziellen Beispiel sonst werfen verwirrend
javax.el.PropertyNotFoundException: Property 'action' not found on type com.example.ViewScopedBean
, weil es standardmäßig interpretiert, als Wert Ausdruck. Hinzufügen von Klammern macht es eine Methode Ausdruck. Siehe auch Warum bin ich in der Lage zu binden, <f:actionListener>, um eine beliebige Methode, wenn es nicht unterstützt wird von JSF?Könnte man sogar eine
actionListener
und/oder eineaction
Methode, um die Komponente der üblichen Weise, die später aufgerufen auf. Was es ist, einzigartig zu sein, ist dieaction
Methode, die entscheidet, das Ergebnis für die Verarbeitung.Sowieso, halten Sie im Verstand, die Zuhörer werden immer ausgeführt, bevor die Aktion als "warming-up" für Sie. Ihre besten zu führen, die ganze Logik in der action-Methode, selbst wenn Sie tun müssen, bean-Injektionen.
Siehe auch: