如何将jquery fullcalendar与jsp集成

时间:2010-02-14 14:17:43

标签: jquery ajax json jsp servlets

events: [
    {
     title: 'All Day Event',
     start: new Date(2010,2,13)
    },
    {
     title: 'Long Event',
     start: new Date(y, m, d-5),
     end: new Date(y, m, d-2)
    }
]

如何从数据库中获取数据后在JSP中创建此数组?

2 个答案:

答案 0 :(得分:0)

你的问题很模糊,但一般来说最简单的事情是将你的数据作为Bean或Map绑定到请求中作为属性或其他东西;这取决于你正在使用什么框架。完成后,只需通过JSTL EL表达式引用字段:

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

尾随的“null”是为IE添加内容;你也可以编写循环来避免逗号尾随逗号。

在我的应用程序中,我总是编写一个“jsQuote”EL函数,它为Javascript字符串常量语法执行类似于“fn:escapeXml”的操作。将事件标题之类的东西直接转储到Javascript源代码中是危险的,但是标准JSP库中没有函数可以为Javascript执行字符串转义。然而,写一个很容易。因此在我的代码中,该行看起来像这样:

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

如果您的数据中包含“长”或“长”,则无需担心“时间戳”。

同样,所有这些完全取决于您的数据。

答案 1 :(得分: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);
    }
    

    将其映射到url-pattern,例如/jsonGetEvents

  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;
        });
    });