Wicket, Ajax und AjaxRequestTargets – onAfterAjaxRequest

Hallo zusammen,

oft gibt es eine Anforderung, nach jedem AjaxRequest beispielsweise ein Javascript an den Client zu senden (beispielsweise für Tracking, Logging etc..)

Man kann sich hier verkünsteln, aber Wicket macht es einem sehr einfach:

In der WebApplication kann folgendes überschrieben werden:


public void init() {
super.init();
getAjaxRequestTargetListeners().add(new IListener() {

public void onBeforeRespond(Map<String, Component> map,
AjaxRequestTarget target) {
String values = "";
Iterator<String> it = map.keySet().iterator();
while (it.hasNext()) {
values += ", " + it.next();
}
target.appendJavaScript("alert('Before AjaxRequest Target Responds - " + values + "')");

}

public void onAfterRespond(Map<String, Component> map,
IJavaScriptResponse response) {
String values = "";
Iterator<String> it = map.keySet().iterator();
while (it.hasNext()) {
values += ", " + it.next();
}
response.addJavaScript("alert('onAfterRespond Responds - " + values+"')");
}
});

// add your configuration here
}

Damit hat man einen Listener, der sowohl vor als auch nach jedem AjaxRequest ausgeführt wird, und man hat zu jedem Zeitpunkt die Möglichkeit, Javascript an den Client zu schicken.

Obendrein bekommt man von Wicket noch eine Map mit allen Komponenten übergeben, die dem AjaxRequestTarget hinzugefügt worden sind.

Übrigens, nur nebenbei aber richtig gut – AjaxRequestTargets kann man überall in der Applikation ermitteln, und zwar mit


AjaxRequestTarget.get()


War dieser Blogeintrag für Sie interessant? Evtl. kann ich noch mehr für Sie tun.

Trainings & Know-How aus der Praxis zu

  • Apache Wicket 1.4.x, 1.5.x, 1.6.x
  • GIT – Best Practices, Einsatz, Methoden
  • Spring
  • Java
  • Scrum & Kanban
  • Agiles Arbeiten
Consulting & Softwareentwicklung

  • Requirements Engineering
  • Qualitätssicherung
  • Software-Entwicklung
  • Architektur
  • Scrum & Kanban
Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s