我有一个问题,将事件数据从mysql加载到jquery fullcalendar ..给出的例子是在PHP,我不知道如何做到java .. 这是示例代码:
111, 'title'=> “事件1”, 'start'=> “$ $年 - 月 - 10”, 'url'=> “http://yahoo.com/” ) )); ?>答案 0 :(得分:4)
您需要为此创建Servlet
。创建一个extends HttpServlet
的类,并在doGet()
中编写代码,以便将所需的JSON字符串写入响应。您可以使用Google Gson将Java对象转换为JSON字符串。
例如:
// Gather data.
Map<String, Object> map = new HashMap<String, Object>();
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类Map
而不是Event
:
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<Event>
中收集所有内容,而List<Map<String, String>>
则优先于List<Event> events = eventDAO.list();
String json = new Gson().toJson(events);
:
{{1}}
答案 1 :(得分:0)
在你的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);
答案 2 :(得分:0)
首先,您需要从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]
});
}
});
问候, 索林