微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用jQuery将JSON数据发布到Struts2 Action类

我在将数据从jQuery发送到struts2动作类时遇到了问题.
我看到了这个问题: JSON Jquery to Struts2 action,但我不太了解解决方案.

这是我的问题:

json数组是这样的:

[{"id":"1","code":"111","name":"ddd"},{"id":"2","code":"222","name":"sss"},{"id":"3","code":"333","name":"eee"}]

我想将json数据发送到struts2动作类.
jQuery代码是这样的:

var data = JSON.stringify(dataObj);
$.ajax({
  url: "Update",type: "post",data:  data,dataType: 'json',contentType:"application/json;charset=utf-8",success : function(){
    alert("You made it!");
  }
});

但是,在Chrome的开发工具中,我已经看到了提交给服务器端的数据.但在服务器端,我不知道如何接收json数据.

行动:

public class Update extends ActionSupport{
    private String data;

    public String getData(){
        return data;
    }

    public void setData(String data){
        this.data= data;
    }

    public String execute(){
        System.out.println(data);
        return SUCCESS;
    }
}

这样,数据为空.

我还尝试使用List来接收JSON数据.将“data”类型从String更改为List< Node>,它再次失败.可能是因为我不太了解Struts2正在使用的OGNL模型.

请帮我.非常感谢你!

解决方法

{"id":"1","name":"ddd"}

步骤1:创建bean / pojo以累积/封装上述字段

class MyBean{
    String id,code,name;
    //getters & setters
}

第2步:更改您的操作代码以接收MyBeans列表

public class Update extends ActionSupport{
    private List<MyBean> data;

   //other code,getters & setters
}

第3步:配置您的操作以反序列化JSON数据并填充操作字段(使用json-plugin)

<action name="Update" class="Update">
        <interceptor-ref name="defaultStack"/>
         <interceptor-ref name="json">
            <param name="enableSMD">true</param>
        </interceptor-ref>
</action>

第4步:在发送的ajax请求体中进行必要的更改以匹配action-params / fields

var data = JSON.stringify(dataObj);
$.ajax({
  url: "Update",data:  "data:"+data,success : function(){
    alert("You made it!");
  }
});

以上代码未经测试.

原文地址:https://www.jb51.cc/jquery/175652.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐