0

我正在使用FullCalendar添加日曆到我的Play java應用程序,我只需要在日曆中顯示我的事件。對於這一點,我有一個JavaScript的路由器,這是我的控制器:事件未在fullcalendar中顯示(播放框架)

public class Utilities extends Controller { 

public static Result javascriptRoutes() { 
    response().setContentType("text/javascript"); 
    return ok(
      Routes.javascriptRouter("myJsRoutes", 
        routes.javascript.Utilities.json() 
      ) 
    ); 
} 

public static Result json(Long start, Long end) throws ParseException { 

    ArrayList<Map<Object, Serializable>> allEvents = new ArrayList<Map<Object, Serializable>>(); 
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm"); 
    Date startDate = df.parse("2015-08-14 00:00"); 
    Date endDate = df.parse("2015-08-19 00:00"); 

    Map<Object, Serializable> eventRemapped = new HashMap<Object, Serializable>(); 
    eventRemapped.put("id", 1l); 
    eventRemapped.put("title", "test title"); 
    eventRemapped.put("start", df.format(startDate)); 
    eventRemapped.put("end", df.format(endDate)); 
    eventRemapped.put("allDay", true); 
    allEvents.add(eventRemapped); 

    return ok(play.libs.Json.toJson(allEvents)); 
} 

} 

和我在我的頁面的頁眉這一行:

<script type="text/javascript" src='@routes.Utilities.javascriptRoutes()'></script> 

,這2條線在我的路線

GET   /javascriptRoutes       controllers.Utilities.javascriptRoutes 

GET   /events.json        controllers.Utilities.json(start: Long ?= 0, end: Long ?= 0) 

最後,這是我的Java腳本代碼應該告訴我從Utilities.json

我的測試活動

使用調試器,我可以看到Utilities.json被調用。但我仍然在日曆視圖中沒有任何事件。它看起來只是空的: enter image description here

我在做什麼錯?我不得不提到我對Javascript世界不是很熟悉。

回答

0

我發現傳遞給我的Utilities.json的參數不能解析爲Long,但它們必須是String。所以我改變了

public static Result json(Long start, Long end) throws ParseException { 

public static Result json(String start, String end) throws ParseException { 

,也改變了我的路線:

GET   /events.json        controllers.Utilities.json(start: String, end: String) 

我也意識到,我並不需要一個Javascript路由器,所以我改變了我的javascript代碼爲:

$(document).ready(function() { 

     $('#calendar').fullCalendar({ 
      // put your options and callbacks here 
      weekNumbers: true, 
      weekends: false, // will hide Saturdays and Sundays 
      height: 420, 
      events: "/events.json" 
     }) 
    }) 

和東西現在工作正常