Frage

Wenn ich das tun kann, wie rufe ich Java-Code (Methoden zum Beispiel) aus JavaScript-Code in Wicket.

War es hilfreich?

Lösung

erk. Die richtige Antwort wäre Ajax-Rückrufe sein. Sie können entweder manuell codieren die js in die Wicket js Haken, oder Sie können Setup die Rückrufe von Wicket-Komponenten in Java. Zum Beispiel von AjaxLazyLoadPanel:

        component.add( new AbstractDefaultAjaxBehavior() {

        @Override
        protected void respond(AjaxRequestTarget target) {
            // your code here
        }

        @Override
        public void renderHead(IHeaderResponse response) {
            super.renderHead( response );
            response.renderOnDomReadyJavascript( getCallbackScript().toString() );
        }

        }

Dieses Beispiel zeigt, wie Code auf jede Komponente in Wicket hinzuzufügen zurückrufen. Nach den OnDomReady Ereignis ausgelöst wird in Ihrem Browser, wenn eine Seite geladen wird, wird Wicket dazu führen, dass js enging ist, um wieder in Ihren Code aufrufen, mit Ajax, dem ‚respond‘ -Methode oben gezeigt, an dem Punkt der Sie Java-Code auf das ausführen kann Server und möglicherweise Komponenten hinzufügen das ajax-Ziel neu gerendert werden.

Um es zu tun manuell, von js, können Sie in Wicket System Haken getCallbackScript durch Ausdrucke (). ToString () zu einem Attribute auf einer Wicket-Komponente, die Sie dann in der Lage sein, von js zugreifen. Beim Aufruf dieser URL aus js manuell mit Schlupf der wicketAjaxGet von Wicket-ajax.js.

Überprüfen Sie die Mailing-Liste für das Los in der Konversation zu diesem Thema aus: http://www.nabble.com/Wicket-and-javascript-ts24336438 .html # a24336438

Andere Tipps

Auszug aus https://cwiki.apache.org/WICKET/ Aufruf-Wicket-from-javascript.html

Wenn Sie eine Klasse hinzufügen, die AbstractDefaultAjaxBehavior auf Ihre Seite erstreckt, wird Wicket-ajax.js ofyour Webseite zu dem Header hinzugefügt werden. Wicket-ajax.js liefert Ihnen zwei grundlegende Methoden, um Ihre Komponente zu nennen:

function wicketAjaxGet(url, successHandler, failureHandler, precondition, channel)

und

function wicketAjaxPost(url, body, successHandler, failureHandler, precondition, channel)

Hier ist ein Beispiel:

JavaScript

function callWicket() {
   var wcall = wicketAjaxGet('$url$' + '$args$', function() { }, function() { });
}

$url$ wird aus dem Verfahren abstractDefaultAjaxBehavior.getCallbackUrl() erhalten. Wenn Sie die Zeichenfolge aus dieser Methode in Ihrem Browser zurückgegeben einfügen, werden Sie die respond Methode aufrufen, das gleiche gilt für die JavaScript-Methode.

Sie können optional Argumente hinzufügen, indem Sie diese an die URL-Zeichenfolge anhängt. Sie haben die Form &foo=bar.

Sie erhalten die optionalen Argumente in der Java-Response-Verfahren wie folgt aus:

Map map = ((WebRequestCycle) RequestCycle.get()).getRequest().getParameterMap();

oder folgt aus:

String paramFoo = RequestCycle.get().getRequest().getParameter("foo");

http: //www.wicket-library. com / Wicket-Beispiele-6.0.x / index.html / viele Beispiele haben Sie gehen zu lassen.

oder Sie haben einen Blick auf DWR

http://directwebremoting.org/

DWR erlaubt Javascript in einem Browser mit Java auf einem Server zu interagieren und helfen Sie, Web-Seiten mit den Ergebnissen zu manipulieren.

Wie Dorward erwähnt wird dies über AJAX getan

Angenommen, Sie bedeuten JavaScript auf dem Client ausgeführt - Sie verursachen eine HTTP-Umleitung auf dem Server vorgenommen werden, und haben Ihr Servlet auf die Anforderung für die angegebene URL reagieren

.

Dies ist bekannt als Ajax , und es gibt ein Zahl von Bibliotheken , die helfen Sie tun es ..

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top