如何将jquery日历与jsp集成
我有一个问题,从mysql加载事件数据到jquery fullcalendar ..给出的例子是在PHP,我不知道如何做它..这是示例代码:
111,’title’=>“Event1”,’start’=>“$ year- $ month-10”,’url’=>“http://yahoo.com/”))); ?>
您需要为此创建一个Servlet
。 创建一个extends HttpServlet
并在doGet()
编写代码的类,它将所需的JSON字符串写入响应。 您可以使用Google Gson将Java对象转换为JSON字符串。
例如:
// Gather data. Map map = new HashMap(); map.put("id", 111); map.put("title", "event1"); map.put("start", new SimpleDateFormat("yyyy-MM-10").format(new Date())); map.put("url", "http://yahoo.com/"); // Convert to JSON string. String json = new Gson().toJson(map); // Write JSON string. response.setContentType("application/json"); response.setCharacterEncoding("UTF-8"); response.getWriter().write(json);
然后只需在web.xml
将此servlet映射到所需的url-pattern
。
您甚至可以创建Javabean类Event
而不是Map
:
public class Event { private Long id; private String title; private Date start; private URL url; // Add/generate getters/setters. }
您甚至可以使用Gson转换它:
Event event = eventDAO.find(request.getParameter("id")); String json = new Gson().toJson(event);
通过这种方式,您可以更轻松地在List
收集它们, List
优先于List
:
List events = eventDAO.list(); String json = new Gson().toJson(events);
在你的servlet中放这个脚本:
map.put("id", 111); map.put("title", "event1"); map.put("start", new SimpleDateFormat("yyyy-MM-10").format(new Date())); map.put("url", "http://yahoo.com/"); // Convert to JSON string. String json = new Gson().toJson(map); // Put json between [] to be formatted by Fullcalendar json = "[" + json + "]"; // Write JSON string. response.setContentType("application/json"); response.setCharacterEncoding("UTF-8"); response.getWriter().write(json);
首先,您需要从jQuery调用servlet – 您可以使用$ .ajax()执行此操作。 然后,您需要将结果传递给日历。 以下工作正常:
$.ajax({ url: 'app', dataType: "json", success: function(response) { $('#calendar').fullCalendar({ header: { left: 'prev,next today', center: 'title', right: 'month,agendaWeek,agendaDay' }, editable: true, events: [response] }); } });
问候,索林