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
Freigeben: 2024-12-06 02:53:11
Original
1039 Leute haben es durchsucht

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>
Nach dem Login kopieren

Dieses Skript kann mit einfachem JavaScript aufgerufen werden:

commandName();
Nach dem Login kopieren
Nach dem Login kopieren

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>
Nach dem Login kopieren

Der Aufruf ähnelt :

commandName();
Nach dem Login kopieren
Nach dem Login kopieren

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>
Nach dem Login kopieren

Ersetzen Sie einfach h:commandScript durch o:commandScript.

Trick „Verstecktes Formular“

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

<h:form>
Nach dem Login kopieren

Aufruf:

document.getElementById("form:button").onclick();
Nach dem Login kopieren
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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage