Skip to content


Wicket Ajax Tipp – AjaxRequestTarget nachträglich ermitteln

Gestern wurde ich gefragt, ob und wie man denn vermeiden kann, dass man das AjaxRequestTarget immer als Funktionsargument weiterreichen muss, wenn man an anderer Stelle darauf zugreifen möchte. Ich muss zugeben, dass ich die einfache Antwort nicht sofort wusste (was, wie man sehen wird, erstaunlich ist). Ich wusste aber, dass mir kürzlich ein Stück Wicket-Code begegnet ist, wo ermittelt werden musste, ob ein AjaxRequest oder ein normaler Request abgearbeitet wird.

Ich machte mich also erneut auf die Suche und fand die Code-Zeile in der AjaxFallbackButton-Klasse. Ich war kurz davor ein paar Zeilen Code daraus abzuleiten und warf nur einen flüchtigen Code in die AjaxRequestTarget-Klasse, um festzustellen, das es das natürlich schon gibt.

 Java(TM) 2 Platform Standard Edition 5.0 |  copy code |? 
1
AjaxRequestTarget target=AjaxRequestTarget.get();

So einfach geht das. So einfach, dass ich es fast übersehen hätte.

Share and Enjoy:
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks

Andere Beiträge

Posted in Allgemein, Wicket.

Tagged with , , .


2 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. Martin Funk says

    Moin moin,

    es lohnt aber auch einen Blick in die Implementierung der Methode zu werfen:

    public static AjaxRequestTarget get()
    {
    final RequestCycle requestCycle = RequestCycle.get();
    if (requestCycle != null)
    {
    if (requestCycle.getRequestTarget() instanceof AjaxRequestTarget)
    {
    return (AjaxRequestTarget)requestCycle.getRequestTarget();
    }
    }
    return null;
    }

    Man kann gut erkennen wie man von überall an ein Request Target kommen kann.
    Ausserdem sieht man, dass die Methode null zurückgibt, wenn das aktuelle Target kein AjaxRequestTarget ist.

    • admin says

      Danke für die Ergänzung:)



Some HTML is OK

or, reply to this post via trackback.