将序列化数组传递给 struts2 动作

2022-01-16 00:00:00 json jquery java struts2 struts2-jquery

我打算将整个表单数据以 JSON 格式发布到 Struts2 Action.下面是我的代码片段.纠正我哪里出错或帮助我,以便我可以正确获取操作文件中的所有值.我的所有操作文件中的 SOP 都显示为 null

I am planning to post entire form data in JSON format to Struts2 Action. Below are my code snippets. Correct me where I am going wrong or Help me so that I can get all values in the Action file correctly. All of my SOPs in Action file is displayed as null

var MyForm = $("#companyform").serializeArray();
   var data = JSON.stringify(MyForm);


   $.ajax({
       type: 'POST',
       url:'createcompany.action?jsonRequestdata='+data,
       dataType: 'json',
       success: function(data){
             console.log(stringify(data));
        }});

我的表单数据变成[{"name":"tan","value":"rrr"},{"name":"pan","value":"adf"},{"name":"tod","value":"1"}]

Struts2 动作文件:

String jsonRequestdata;
public String execute() throws Exception {
    JSONArray jsonArr = (JSONArray) new JSONParser().parse(jsonRequestdata);
    JSONObject json = (JSONObject) jsonArr.get(0);


    System.out.println("TAN=" + json.get("tan"));
    System.out.println("PAN=" + json.get("pan"));
    System.out.println("TOD=" + json.get("tod"));
    return "success";
}

当前输出

TAN=null
PAN=null
TOD=null

推荐答案

由于我使用的是name,value我必须使用name来获取它.下面是工作代码

Since I am using name,value I must get it by using name. Below is the working code

JSONArray jsonArr = (JSONArray) new JSONParser().parse(jsonRequestdata);

    for(int i=0;i<jsonArr.size();i++){
            JSONObject json=(JSONObject) jsonArr.get(i);   
            System.out.println("name=" + json.get("name"));
            System.out.println("value=" + json.get("value"));
    }

相关文章