2017-01-03 4 views
0
  1. Ich habe eine JavaScript-Datei morris.js und ich habe einige Java-Methoden aufrufen ein map oder list Ergebnis abzurufen. Ich kann die Methoden reverserouting oder controller nicht verwenden, da ich den Typ Result innerhalb der Controller zurückgeben muss.Wie Aufruf Java-Methode von Play-Framework-2.5.X

    Wie kann ich das erreichen?

    Ein Beispiel für das erwartete Ergebnis:

    $.ajax(some method) 
         .done(some treatment) 
         .fail(console.log('not ok')); 
    
    // data stolen from http://howmanyleft.co.uk/vehicle/jaguar_'e'_type 
    
    var tax_data = [ 
        {"period": "2013", "licensed": 400, "sorned": 550}, 
        {"period": "2012", "licensed": 450, "sorned": 400}, 
        {"period": "2011", "licensed": 350, "sorned": 550}, 
        {"period": "2010", "licensed": 500, "sorned": 700}, 
        {"period": "2009", "licensed": 250, "sorned": 380}, 
        {"period": "2008", "licensed": 350, "sorned": 240}, 
        {"period": "2007", "licensed": 180, "sorned": 300}, 
        {"period": "2006", "licensed": 300, "sorned": 250}, 
        {"period": "2005", "licensed": 200, "sorned": 150} 
    ]; 
    
  2. Ich habe ein Verfahren mit einem Parameter in Controllern. Wie kann ich es in JavaScript-Router hinzufügen:

    public Result getYearUploadedVideos(Long userId){ 
        // ... 
    } 
    

    meinem Router:

    public Result jsRoutes() { 
        return ok(play.routing.JavaScriptReverseRouter.create("jsRoutes", 
           routes.javascript.Signup.forgotPassword(), 
           routes.javascript.AdminManagement.contact(), 
           routes.javascript.ProfilManagement.view(), 
           routes.javascript.DashboardManagement.getYearUploadedVideos())) 
         .as("text/javascript"); 
    } 
    

... aber es funktioniert nicht. Irgendeine Hilfe?

Antwort

0

In der Tat sehr einfach:

public Result jsRoutes() { 
    return ok(
      play.routing.JavaScriptReverseRouter.create("jsRoutes", 
        routes.javascript.Signup.forgotPassword(), 
        routes.javascript.DashboardManagement.getSmartCasterSharedDonutStatDataJson(), 
        routes.javascript.DashboardManagement.getSmartCasterActionStatDataJson(), 
        routes.javascript.DashboardManagement.getUploadedPublishedVideoStatDataJson(), 
        routes.javascript.DashboardManagement.getVideoSharedDonutStatDataJson(), 
        routes.javascript.DashboardManagement.getVideoActionStatDataJson())) 
      .as("text/javascript"); 

} 

dann:

$.ajax(jsRoutes.controllers.DashboardManagement.getVideoSharedDonutStatDataJson(id)) 
    .done(function(donut){ 
     console.log(JSON.stringify(donut)); 
...}); 

, dass es uns ID nicht konfigurierten in umgekehrten JS Routing

Verwandte Themen