2010-02-14 26 views

回答

0

那麼你的問題是模糊的,但一般來說,最簡單的事情就是將數據作爲Bean或Map綁定到請求中作爲屬性,這取決於你使用的是什麼框架。一旦你這樣做,你只是通過JSTL EL表達式參考字段:

events: [ 
    <c:forEach var='event' items='${myData.events}'> 
    { title: '${event.title}', start: new Date(${event.timestamp}) }, 
    </c:forEach> 
    null 
]; 

尾隨「零」就是把一些有IE瀏覽器;你也可以編寫循環來避免尾隨逗號。

在我的應用程序中,我總是寫一個「jsQuote」EL函數,它爲JavaScript字符串常量語法做類似於「fn:escapeXml」的事情。將類似事件標題的東西直接轉儲到Javascript源代碼中是很危險的,但標準JSP庫中沒有爲Javascript執行字符串轉義的功能。然而,寫一個很容易。因此,在我的代碼,行是這樣的:

{title: '${xyz:jsQuote(event.title)}', start: new Date(${event.timestamp}) }, 

你不必擔心「時間戳」,如果它是一個「長」或在你的數據的「龍」。

所有這一切完全取決於您的數據是什麼樣子。

0
  1. 創建一個JavaBean類Event它看起來像這樣

    public class Event { 
        private String title; 
        private Date start; 
        private Date end; 
        // Add/generate getters and setters. 
    } 
    
  2. 創建Servlet它使用Google Gson將其轉換爲JSON

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOexception { 
        List<Event> events = eventDAO.list(); 
        String json = new Gson().toJson(events); 
        response.setContentType("application/json"); 
        response.setCharacterEncoding("UTF-8"); 
        response.getWriter().write(json); 
    } 
    

    地圖這對例如/jsonGetEventsurl-pattern

  3. 在jQuery中使用$.getJSON功能:

    $.getJSON('jsonGetEvents', function(events) { 
        // `events` is a JSON string. Do your thing with it. This examples loops over it. 
        $.each(events, function(index, event) { 
         var title = event.title; 
         var start = event.start; 
         var end = event.end; 
        }); 
    });