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:

[code language=”java”]

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
}

[/code]

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

[code language=”java”]

AjaxRequestTarget.get()

[/code]


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

Effective Trainings & Consulting - Martin Dilger



Hat Ihnen dieser Blog-Eintrag gefallen? Ich stelle in diesem Blog Informationen über Tools, Frameworks und Werkzeuge zur Verfügung, die mich produktiver machen. Vielleicht kann ich auch Ihnen helfen, produktiver zu werden.


Ich unterstütze Sie als freier Mitarbeiter bei der Entwicklung von Software-Projekten, Agiler Arbeit sowie Schulungen / Fortbildungen.


Jeden Tag ein bisschen produktiver - ab heute