完整日历Struts2 JSON



我不知道如何从JSON中获取数据到我的Fullcalendar Jquery函数我已经阅读了文档,但他们显示的唯一示例对我来说并不清楚

这是我的代码

<script>
$(document).ready(function() {
    $('#calendar').fullCalendar({
        theme: true,
        header: {
            left: 'prev,next today',
            center: 'title',
            right: 'month,agendaWeek'
        },
        editable: true,
        events: 'jsone.action'
    });
});

,在我的操作中,我只返回3个值用于测试

@ParentPackage("json-default")
@Action(value = "jsone", results = {
@Result(type = "json", name = "success"),})
 public String title;
public String start;
public String end;
public String execute() {
    title="Event";
    start="2014-01-12T10:30:00-05:00";
    end="2014-01-12T12:30:00-05:00";
    System.out.println("execute");
    return SUCCESS;
}
//setters getters

当我调用"jsone"操作时,我得到这个所以我认为这是正确的格式,即使我加载日历时,我也没有得到任何错误消息,jsone操作工作并正确执行

{"end":"2014-01-12T12:30:00-05:00","start":"2014-01-12T10:30:00-05:00","title":"event"}

注意我和一个有同样问题的人一起读过这篇文章https://stackoverflow.com/questions/17459184/implementing-fullcalendar-with-struts-2

现在我知道如何正确获取数据,所以我想发布解决方案。对于这个例子,我将只使用一个事件。

第一个动作(使用注释)

@ParentPackage("json-default")
@Action(value = "jsone", results = {
@Result(type = "json", name = "success"),})

现在在动作(java类)中

public String title;
public String start;
public String end;
public String execute() {
    title="Event";
    start="2014-06-12T10:30:00-05:00";
    end="2014-06-12T12:30:00-05:00";
    return SUCCESS;
}
//GETTERS SETTERS

这就是您的事件在JSP中的样子

events: function(start, end, timezone, callback) {
            $.ajax({
                url: 'jsone.action',
                dataType: 'json',
                data: {
                    start: start.unix(),
                    end: end.unix()
                },
                success: function(doc) {
                    var events = [];
                    events.push({
                        title: doc.title,
                        start: doc.start,
                        end: doc.end
                    });
                    callback(events);
                }
            });
        }

现在. .STARTEND参数仅用于返回一定数量的事件,而不是整个事件列表,CALLBACK参数用于返回事件数组,然后在成功的function(doc)中,doc参数是从动作中获取的事件,因此您可以轻松访问您的动作属性(在我的动作示例中,我使用了"标题","开始"one_answers"结束"名称,但您可以使用任何不同的名称),您知道您正在使用的完整日历版本也很重要,因为新的BETA版本(2.x)使用时刻而不是通常的数据1。X版本使用。现在你必须使用这个格式

start="2014-06-12T10:30:00-05:00";
    end="2014-06-12T12:30:00-05:00";
重要:这个例子使用了"Struts2 JSON-Plugin",所以需要@ParentPackage("json-default")来使用这个插件,你可以在maven 中使用它。
<dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-json-plugin</artifactId>
    <version>2.3.16.3</version>
</dependency>

相关内容

  • 没有找到相关文章

最新更新