我正在尝试了解如何使用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");
}
});
}
我的操作类包含一个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>
答案 0 :(得分:1)
在操作配置中,您不应覆盖json-default
包中的默认配置,只需对其进行扩展即可。另外json-default
扩展struts-default
,因此不需要多重继承。
<package name="default" extends="json-default">
<action name="meeting_record_form" class="com.task.action.MeetingRecordAction" method="updateAttendeesRecord">
<result name="success" type="json" />
</action>
</package>
答案 1 :(得分:1)
Action类MeetingRecordAction中的问题,方法 updateAttendeesRecord 是私有的,应该是公开的
public String updateAttendeesRecord() {
meetingRecordService.updateAttendeesRecord(attendeesListMethod(), meeting_record);
setMyMsg("Update Successful!");
return SUCCESS;
}
答案 2 :(得分:0)
我通过在json结果上添加myMsg解决了我的问题。感谢所有帮助