如何通过POST(ajax)发送JSON数据并从Struts 2动作接收json响应

我试图了解如何使用JSON,并在此过程中我试图从Struts2操作获取JSON响应并显示响应的警报。 为此我在JavaScript中使用Ajax POST如下:

function checkButtonClick(id){ var btnSave = 'saveAttendees'; var atNameList = $('#attName'+id).val(); var ptNameList = $('#postName'+id).val(); var aId = $('#at_id'+id).val(); alert("here"); var arr = {buttonName: btnSave, attendeesNameList: atNameList, attendeesPostList: ptNameList, hidden_At_id: aId }; $.ajax({ data: arr, type: 'POST', dataType: 'json', url:"meeting_record_form", success:function(result){ alert(result.myMsg); }, error:function(result){ alert("error"); } }); } 

我的action类包含一个String字段,我试图在alert中显示为JSON响应。 但我发现这样做有问题。 我错过了什么或做错了什么?

我的动作类如下:

 private String myMsg; public String getMyMsg() { return myMsg; } public void setMyMsg(String myMsg) { this.myMsg = myMsg; } private String updateAttendeesRecord() { meetingRecordService.updateAttendeesRecord(attendeesListMethod(), meeting_record); setMyMsg("Update Successful!"); return SUCCESS; } 

struts.xml文件:

             

我的pom.xml

  org.apache.struts struts2-json-plugin 2.3.15  

在操作配置中,您不应该从json-default包覆盖默认配置,只需扩展它和所有。 此外, json-default扩展了struts-default ,因此不需要多重inheritance。

      

您的Action类MeetingRecordAction中的问题,方法updateAttendeesRecord是私有的,它应该是公共的

 public String updateAttendeesRecord() { meetingRecordService.updateAttendeesRecord(attendeesListMethod(), meeting_record); setMyMsg("Update Successful!"); return SUCCESS; } 

我通过在json结果上添加myMsg解决了我的问题。 谢谢你的帮助