2011-09-06 10 views
3

我在Java腳本頁面下面的函數調用便門AJAX:如何將JSON從檢票傳遞到JavaScript?

function callWicketPage() { 
       wicketAjaxGet(
       urlCallback, 
       function() {alert('success'); }, 
       function() { alert('failed'); 
       }); 
      } 

,並在檢票頁我做了以下內容:

final AbstractDefaultAjaxBehavior behave = new AbstractDefaultAjaxBehavior() { 
    @Override 
    public void renderHead(IHeaderResponse ihr) { 
     super.renderHead(ihr); 
     ihr.renderJavascript("var urlCallback = '" + this.getCallbackUrl() + "';", "insertedjavascript"); 
    } 
     protected void respond(final AjaxRequestTarget target) { 
     } 
    }; 
    add(behave); 

我想是回送一個JSON響應從wicket頁面到JavaScript,我怎麼能做到這一點\?

回答

1

我建議你使用ResourceReference來代替,所以你不必獲得對頁面實例的讀/寫訪問權限(並且爲了更方便地訪問你的客戶端腳本)。

但是,如果你想保持你的行爲基礎的解決方案:

class JsonBehavior extends AbstractDefaultAjaxBehavior { 

    @Override 
    protected void updateAjaxAttributes(AjaxRequestAttributes attributes) { 
     super.updateAjaxAttributes(attributes); 

     // please define the channel type (default: queue) 
     attributes.setChannel(new AjaxChannel("json")); 
    } 

    @Override 
    protected void respond(AjaxRequestTarget target) { 
     RequestCycle rc = RequestCycle.get(); 

     rc.replaceAllRequestHandlers(new TextRequestHandler("application/json", "UTF-8", "{'json':'content'}")); 
    } 
} 
相關問題