如何将jquery日历与jsp集成

时间:2009-12-21 04:34:34

标签: java ajax jsp calendar

我有一个问题,将事件数据从mysql加载到jquery fullcalendar ..给出的例子是在PHP,我不知道如何做到java .. 这是示例代码:

 111,              'title'=> “事件1”,              'start'=> “$ $年 - 月 - 10”,              'url'=> “http://yahoo.com/”          )      ));  ?>

3 个答案:

答案 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]
                });
          }
        });

问候,     索林