i have a problem to load the event data from mysql to jquery fullcalendar..the example given is in php and i dont know how to do it java.. this is the sample code:
111, 'title' => "Event1", 'start' => "$year-$month-10", 'url' => "http://yahoo.com/" ) )); ?>
Asked
Active
Viewed 5,756 times
1
-
Do you have a link to the example? – Bernie Perez Dec 21 '09 at 04:59
-
and give your code (the one where you attempted to make it work, but it didn't) – Bozho Dec 21 '09 at 07:20
3 Answers
4
You need to create a Servlet
for that. Create a class which extends HttpServlet
and write code in doGet()
accordingly that it writes the desired JSON string to the response. You can use Google Gson to convert Java objects to a JSON string.
For example:
// 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);
Then just map this servlet in web.xml
on the desired url-pattern
.
Instead of a Map
you could even create your Javabean class Event
:
public class Event {
private Long id;
private String title;
private Date start;
private URL url;
// Add/generate getters/setters.
}
You could even use Gson to convert it:
Event event = eventDAO.find(request.getParameter("id"));
String json = new Gson().toJson(event);
This way you can more easy collect them all in a List<Event>
which is preferable above a List<Map<String, String>>
:
List<Event> events = eventDAO.list();
String json = new Gson().toJson(events);

BalusC
- 1,082,665
- 372
- 3,610
- 3,555
-
thank you for your solution.i have try code it in jsp and it didn`t work..here is my code: <%@ page import="java.util.HashMap;" %> <%@ page import="java.util.Map;" %> <%@ page import="com.google.gson.Gson;" %> <% Map
map = new HashMap – user235779 Jan 05 '10 at 09:45(); map.put("title", "event1"); map.put("start","2009-11-11"); // 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); %> in event page: events: "TemuDia-1.0/manageapp/getapp.jsp" -
I said that you need to create a Servlet for this. I didn't said that you need to do this in a JSP. JSP is not for Java code, it is just receipt for trouble. JSP is a view technology providing a template for HTML/CSS/JS and the capability to use taglibs/EL to control page flow and access data dynamically. What is the problem that you have with servlets? Do you just not understand how to use them or declare them in web.xml? Then just say/ask that so instead of going for the wrong solutions. – BalusC Jan 05 '10 at 11:08
-
i have done it in servlet, but it still not appear in jcalendar. the name for this file is app.java..in html $('#calendar').fullCalendar({ events: "/app" }); – user235779 Jan 16 '10 at 03:17
0
First you need to invoke the servlet from jQuery - you do this with $.ajax(). Then you need to pass the result to the calendar. The following works fine:
$.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]
});
}
});
Greetings, Sorin

Sorin-Alexandru Cristescu
- 337
- 4
- 16
0
In your servlet put this script:
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);

Ghazi
- 1