首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过POST (Ajax)发送JSON数据并从Struts 2动作接收JSON响应

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

Stack Overflow用户
提问于 2013-12-06 09:27:17
回答 3查看 4.8K关注 0票数 1

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

代码语言:javascript
复制
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响应以警报形式显示。但我发现这么做有问题。我错过了什么或者做错了什么?

我的操作类如下所示:

代码语言:javascript
复制
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 文件:

代码语言:javascript
复制
 <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**:**

代码语言:javascript
复制
<dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-json-plugin</artifactId>
    <version>2.3.15</version>
</dependency>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-12-09 05:01:38

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

票数 0
EN

Stack Overflow用户

发布于 2013-12-06 11:32:11

在操作配置中,您不应该覆盖来自json-default包的默认配置,只需对其进行扩展。此外,json-default扩展了一个struts-default,因此不需要多个继承。

代码语言:javascript
复制
<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
EN

Stack Overflow用户

发布于 2013-12-06 11:50:07

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

代码语言:javascript
复制
public String updateAttendeesRecord() {
    meetingRecordService.updateAttendeesRecord(attendeesListMethod(), meeting_record);
    setMyMsg("Update Successful!");
        return SUCCESS;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20420314

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档