Heim >Web-Frontend >js-Tutorial >Wie rufe ich JSF-verwaltete Beans für HTML-DOM-Ereignisse mithilfe von JavaScript auf?

Wie rufe ich JSF-verwaltete Beans für HTML-DOM-Ereignisse mithilfe von JavaScript auf?

Linda Hamilton
Linda HamiltonOriginal
2024-12-06 02:53:111019Durchsuche

How to Invoke JSF Managed Beans on HTML DOM Events Using JavaScript?

Aufruf von JSF Managed Bean auf HTML-DOM-Ereignis mit nativem JavaScript

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.

JSF 2.3

In JSF 2.3 und höher ist die Komponente bietet eine direkte Lösung:

<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.

PrimeFaces

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().

OmniFaces

Für JSF-Versionen älter als 2.3 bietet OmniFaces an, das den gleichen Zweck erfüllt wie :

<o:form>
    <o:commandScript name="commandName" action="#{bean.action}" render=":results" />
</o:form>

Ersetzen Sie einfach h:commandScript durch o:commandScript.

Trick „Verstecktes Formular“

Ein alternativer Ansatz besteht darin, ein verstecktes Formular mit einem :

<h:form>

Aufruf:

document.getElementById("form:button").onclick();
Benutzerdefinierte UIComponent

Als 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn