我目前正在使用fullCalendar(jQuery插件)并且现在遇到了愚蠢的问题,但我无法克服它。
在日历页面加载中尝试从数据库填充事件详细信息。这是我的代码,
$('#calendar').fullCalendar({
defaultDate: '2016-03-12',
editable: true,
eventLimit: true, // allow "more" link when too many events
eventSources: [
getEvents()
]
});
function getEvents(){
alert("Inside get Events");
$.ajax({
url : "/FullCal/eventDetails.do",
dataType : 'json',
success : function(data){
alert(data)
}
});
}
使用Struts框架,这是我的动作映射,
<action path="/eventDetails" type="com.struts.action.CalendarInviteAction" >
<forward name="success" path="/Calendar.jsp" />
</action>
我的动作类有JSON格式的事件详细信息数据。我的问题是如何将json数据写入ajax响应(简单来说,如何将json数据返回到ajax调用)。这是我的操作类 更新
public ActionForward execute(ActionMapping mapping , ActionForm form , HttpServletRequest request , HttpServletResponse response) throws Exception{
System.out.println("TEsting inside getEventDetails");
ArrayList<EventForm> arr = new ArrayList<EventForm>();
arr.add(new EventForm("HandOff Meeting" , new Date(), new Date(),"Meeting at HandOffBridge"));
Gson gson = new Gson();
String jsonString = gson.toJson(arr);
response.getWriter().write(jsonString);
return null;
}
jsonString包含JSON格式的eventDetails,如何将其返回给ajax。
请帮助我实现这一目标。
答案 0 :(得分:1)
[jQuery Ajax] [1]使用dataType : 'json'
来指定执行操作和结果时预期由success
回调函数返回的数据类型,并返回响应从服务器。
dataType
(默认:智能猜测(xml
,json
,script
或html
))输入:
String
您期望从服务器返回的数据类型。如果没有指定,jQuery将尝试根据响应的MIME类型推断它(XML MIME类型将产生XML,在1.4 JSON中将产生一个JavaScript对象,在1.4脚本中将执行脚本,其他任何东西将是以字符串形式返回。)
URL应正确指向操作映射。假设它将在默认命名空间中,否则您应该修改URL和映射以添加namespace
属性。
<script type="text/javascript">
$(function() {
$("#dialog-form").dialog ({
autoOpen: true,
height: 500,
width: 750,
modal: true,
buttons : {
"Search" : function() {
$.ajax({
url : '<s:url action="part" />',
success : function(data) {
//var obj = $.parseJSON(data);
var obj = data;
alert(JSON.stringify(obj));
}
});
}
}
});
});
</script>
答案 1 :(得分:1)
你的ajax电话似乎没问题。只需要以适当的方式显示ajax响应。
events: function(start, end, timezone, callback) {
$.ajax({
url : "/FullCal/eventDetails.do",
dataType : 'json',
success : function(data){
callback(data);
}
});
}
答案 2 :(得分:0)
我的第一个猜测是为什么返回null?
return null;
只需返回json字符串:
return jsonString;