Как интегрировать JQuery календарь с JSP - PullRequest
1 голос
/ 21 декабря 2009

У меня проблема с загрузкой данных о событиях из mysql в jquery fullcalendar .. пример приведен в php, и я не знаю, как это сделать java .. это пример кода:

111, 'title' => "Event1", 'start' => "$ year- $ month-10", 'url' => "http://yahoo.com/" ) )); ?>

Ответы [ 3 ]

4 голосов
/ 21 декабря 2009

Вам нужно создать 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 с желаемым url-pattern.

Вместо Map вы можете даже создать свой класс Javabean 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);
0 голосов
/ 24 февраля 2013

Сначала вам нужно вызвать сервлет из jQuery - вы делаете это с помощью $ .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]
                });
          }
        });

Привет, Сорин

0 голосов
/ 22 июня 2010

В вашем сервлете поместите этот скрипт:

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...