Spring MVC + Freemarker とともにJQuery Full Calendarを使用しようとしています。
そんなデモを作りました。
ターゲット: コントローラーを呼び出して、カレンダーに表示するイベントを含む JSON オブジェクトを取得する必要があります。
問題: コントローラーに移動して JSON オブジェクトをレンダリングする必要がある次のフリーマーカーがありますが、移動しませんか?!!
フリーマーカー:
[#ftl /]
<script type="text/javascript">
$(document).ready(function() {
var date = new Date();
var d = date.getDate();
var m = date.getMonth();
var y = date.getFullYear();
var calendar = $('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay'
},
selectable: true,
selectHelper: true,
select: function(start, end, allDay) {
var title = prompt('Event Title:');
if (title) {
calendar.fullCalendar('renderEvent',
{
title: title,
start: start,
end: end,
allDay: allDay
},
true // make the event "stick"
);
}
calendar.fullCalendar('unselect');
},
editable: true,
events: [
{
url: '[@spring.url '/vacation/getVacation'/]',
type: 'GET',
data: {
start: 'start',
id: 'id',
title: 'title'
}
}
]
});
});
body {
margin-top: 40px;
text-align: center;
font-size: 14px;
font-family: "Lucida Grande", Helvetica, Arial, Verdana, sans-serif;
}
#calendar {
width: 900px;
margin: 0 auto;
}
コントローラー:
@RequestMapping(value = "/vacation/getVacation", method = RequestMethod.GET)
public @ResponseBody void getVacation(HttpServletResponse response) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("id", 111);
map.put("title", "event1");
map.put("start", "2011-07-28");
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");
try {
response.getWriter().write(json);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
ファイアーバグ ショット :