Heim >Web-Frontend >js-Tutorial >Wie rufe ich JSF-verwaltete Beans für HTML-DOM-Ereignisse mithilfe von JavaScript auf?
In der Webentwicklung ist es notwendig, serverseitige Aktionen basierend auf bestimmten Ereignissen auszuführen, die auf dem Client auftreten -Seite. Dies ist in JavaServer Faces (JSF) durch den Einsatz verschiedener Ansätze erreichbar. Ein solcher Ansatz besteht darin, eine von JSF verwaltete Bean-Aktionsmethode mithilfe von Ajax während eines HTML-DOM-Ladeereignisses aufzurufen.
In JSF 2.3 und höher ist die
<h:form> <h:commandScript name="commandName" action="#{bean.action}" render=":results" /> </h:form> <h:panelGroup>
Dieses Skript kann mit einfachem JavaScript aufgerufen werden:
commandName();
Die Einstellung autorun="true" löst es während des DOM-Ladens aus.
Wenn PrimeFaces verwendet wird, sollten Sie dessen Einsatz in Betracht ziehen
<h:form> <p:remoteCommand name="commandName" action="#{bean.action}" update=":results" /> </h:form> <h:panelGroup>
Der Aufruf ähnelt
commandName();
PrimeFaces verwendet jQuery für AJAX-Aufrufe, nicht JSF natives jsf.ajax. request().
Für JSF-Versionen älter als 2.3 bietet OmniFaces
<o:form> <o:commandScript name="commandName" action="#{bean.action}" render=":results" /> </o:form>
Ersetzen Sie einfach h:commandScript durch o:commandScript.
Ein alternativer Ansatz besteht darin, ein verstecktes Formular mit einem
<h:form>
Aufruf:
document.getElementById("form:button").onclick();Benutzerdefinierte UIComponentAls letzten Ausweg kann man Entwickeln Sie eine benutzerdefinierte UIComponent, die UICommand erweitert und jsf.ajax.request() nutzt.Zusammenfassend ermöglichen diese Ansätze Entwicklern, JSF-verwaltete Beans für HTML-DOM-Ereignisse mithilfe von nativem JavaScript aufzurufen. Die Wahl der Methode hängt von Faktoren wie JSF-Version, Bibliotheksnutzung und Projekteinschränkungen ab.
Das obige ist der detaillierte Inhalt vonWie rufe ich JSF-verwaltete Beans für HTML-DOM-Ereignisse mithilfe von JavaScript auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!