【发布时间】:2013-12-23 14:13:29
【问题描述】:
我试图了解如何使用 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 字段,我试图在警报中显示为 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文件:
<package name="default" extends="struts-default, json-default">
<result-types>
<result-type name="json" class="org.apache.struts2.json.JSONResult" />
</result-types>
<interceptors>
<interceptor name="json" class="org.apache.struts2.json.JSONInterceptor" />
</interceptors>
<action name="meeting_record_form" class="com.task.action.MeetingRecordAction" method="updateAttendeesRecord">
<result name="success" type="json" />
</action>
</package>
我的pom.xml:
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-json-plugin</artifactId>
<version>2.3.15</version>
</dependency>
【问题讨论】:
-
你能提供一些信息吗?
-
@mic4ael: updateAttendeesRecord() 方法运行成功,数据更新成功,但我收到“错误”警报或“未定义”
-
也许尝试在您的
$.ajax中添加:async : false -
@mic4ael: async: false 不起作用
-
尝试从错误回调中提醒错误信息。
标签: java jquery ajax json struts2