2012-11-02 3 views
5

Hi tutti i pro wicket là fuori,Come arrivare parametro in più da AjaxRequest wicket 6

vorrei ottenere parametro in più ho aggiunto alla AjaxRequest nel rispondere (target AjaxRequestTarget) metodo di un AbstractDefaultAjaxBehaviour.

Costruisco la chiamata Wicket.Ajax.get (...) e potrei gestire che venga richiamato il metodo di risposta (AjaxRequestTarget target) di AbstractDefaultAjaxBehaviour, ma ottengo una riserva su come ottenere i parametri aggiuntivi I aggiunto alla mia chiamata js.

Quindi, ecco il codice quello che sto facendo:

js che si chiama onSelect:

Wicket.ajax.get({'u':'callbackUrl','c':'componetId', 'ep':{'objectId':'OBJECT_ID'}}); 

java frammento del AbstractDefaultAjaxBehaviour:

onSelectBehavior = new AbstractDefaultAjaxBehavior(){ 
     @Override 
     protected void respond(AjaxRequestTarget target) { 
      //here I want to get the OBJECT_ID I added in the Wicket.Ajax.get call above 
     } 
}; 

La rispondere() metodo è invocato come previsto, ma non so come ottenere OBJECT_ID. In realtà non sono affatto sicuro di aver aggiunto il parametro extra nel modo giusto alla chiamata wicket.ajax.get.

In Wicket 1.4 ho aggiunto i parametri extra come una stringa di query URL come ajaxCallUrl...?objectId=OBJECT_ID e rispondono() ho ricevuto indietro dal RequestCycle RequestCycle().get().getRequest().getParameter('objectId')

Se qualcuno mi potrebbe dare un suggerimento, lo apprezzerei :) Grazie in anticipo, Ronny

risposta

5

L'approccio è corretto. Si dovrebbe essere in grado di ottenere il parametro in questo modo:

@Override 
protected void respond(AjaxRequestTarget target) 
{ 
    getRequest().getRequestParameters().getParameterValue("objectId"); 
} 

Vedi la mia risposta a this question per il passaggio di parametri direttamente da Wicket senza costruire l'Ajax chiamare te.

+0

Grazie Thomas, ha funzionato, ero molto vicino e mi hai dato l'ultimo suggerimento di cui avevo bisogno per ottenerlo :) – rontron