java - FullCalendar - 添加多个事件或添加事件源

标签 java jquery fullcalendar

我已经浏览了 stackoverflow 中的帖子,将事件添加到 FullCalendar 中,但是我真的很新,发现如果没有示例,真的很难理解。简而言之,这里有人能够为我简化它,以便将对象数组添加到 FullCalendar 中吗?

我想添加我创建的约会约会(日期日期,字符串名称,字符串电话号码)。因此它们在列表中检索:

 PersistenceManager pm = PMF.get().getPersistenceManager();
 String query = "select from " + Appointment.class.getName();  
 query += " where merchant == '" + session.getAttribute("merchant") + "'";
 List<Appointment> appointment = (List<Appointment>) pm.newQuery(query).execute();

如何使用我获得的列表填充 FullCalendar 插件?非常感谢!

最佳答案

如果有人遇到与我相同的问题 - 您有一个 java 对象列表并希望它填充 FullCalendar,那么解决方案如下:

JSP页面

$(document).ready(function() {

            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,

                                eventSources: [
                                    {
                                            url: '/calendarDetails',
                                            type: 'GET',
                                            data: {
                                                start: 'start',
                                                end: 'end',
                                                id: 'id',
                                                title: 'title',
                                                allDay: 'allDay'
                                            },
                                            error: function () {
                                                alert('there was an error while fetching events!');
                                            }
                                    }
                            ]         
                    });
            });

请不要使用 URL,这是 servlet URL

Servlet

    public class CalendarServlet extends HttpServlet {
    public void doGet(HttpServletRequest req, HttpServletResponse resp)
                throws IOException {

        String something = req.getSession().getAttribute("merchant").toString(); //get info from your page (e.g. name) to search in query for database

        //Get the entire list of appointments available for specific merchant from database

        //Convert appointment to FullCalendar (A class I created to facilitate the JSON)
        List<FullCalendar> fullCalendar = new ArrayList<FullCalendar>();
        for (Appointment a : appointment) {
            String startDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(a.getDate());
            startDate = startDate.replace(" ", "T");

            //Calculate End Time
            Calendar c = Calendar.getInstance();
            c.setTime(a.getDate());
            c.add(Calendar.MINUTE, 60);
            String endDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(c.getTime());
            endDate = endDate.replace(" ", "T");

            FullCalendar fc = new FullCalendar(startDate, endDate, a.getId(), a.getName() + " @ " + a.getPhone(), false);
            fullCalendar.add(fc);
        }

        //Convert FullCalendar from Java to JSON
        Gson gson = new Gson();
        String jsonAppointment = gson.toJson(fullCalendar);

        //Printout the JSON
        resp.setContentType("application/json");
        resp.setCharacterEncoding("UTF-8");
        try {
            resp.getWriter().write(jsonAppointment);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

如果您需要有关 JSON 或 GS​​ON 的更多信息,请查看上面的评论。

关于java - FullCalendar - 添加多个事件或添加事件源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17162554/

相关文章:

css - 月份首字母大写 fullcalendar

java - 在java中获取eth0接口(interface)的IP地址只返回IPv6地址而不是IPv4

java - Maven 无法解析依赖项(返回代码为 : 409 , ReasonPhrase:Conflict)

java - 使用 DB 和社交网站登录

javascript - 在窗口调整大小时调用多个函数

javascript - 在 audio.js 中禁用快进音频

javascript - FullCalendar 防止事件在工作时间以外丢失

javascript - 更改全日历营业时间的颜色

java - JOptionPane 输入对话框菜单

javascript - d3 条形图中组内的轴文本旋转