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

2024-03-19

我在将数据从 jQuery 发送到 struts2 操作类时遇到问题。 我看到过这样的问题:JSON Jquery 到 Struts2 操作 https://stackoverflow.com/questions/12746051/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数据。

Action:

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;
    }
}

这样,data一片空白。

我还尝试过使用 List 来接收 JSON 数据。将“数据”类型从字符串更改为List<Node>,又失败了。可能是因为我不太了解Struts2正在使用的OGNL模型。

请帮我。非常感谢!


{"id":"1","code":"111","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 请求正文进行必要的更改,以匹配操作参数/字段

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

上面的代码未经测试。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 jQuery 将 JSON 数据发布到 Struts2 Action 类 的相关文章

随机推荐