java - 将序列化数组传递给 struts2 操作

标签 java jquery json struts2 struts2-jquery

我计划将 JSON 格式的整个表单数据发布到 Struts2 Action。下面是我的代码片段。纠正我出错的地方或帮助我,以便我可以正确获取操作文件中的所有值。操作文件中的所有 SOP 显示为 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"},{ “名称”:“托德”,“值”:“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

最佳答案

要通过 POST 请求发送数据,您应该使用这样的 data 属性

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

要获取操作 bean 中的数据,您需要使用公共(public) setter

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

要将数据返回到success回调函数,请使用公共(public)getter

public String getJsonRequestdata(){ return this.jsonRequestdata; } 

要从操作返回 JSON,请使用结果类型 json

<result type="json"><param name="includeProperties">jsonRequestdata</param></result>

请注意,如果将 json 拦截器添加到操作配置中,则可以在请求中使用 JSON 数据。在请求中使用 Content-Type: "application/json" 将触发 Struts2 解析请求并自动将其反序列化为操作 bean。

关于java - 将序列化数组传递给 struts2 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35635774/

相关文章:

javascript - Highcharts - 如何为系列设置自定义颜色

javascript - 使用 javascript/lodash 从输入字符串中解析 html 内容

xml - Ajax:定义与实现? (XML 与 JSON 与其他)

javascript - 使用 JSON 将格式化 JavaScript 代码传递给 HighCharts

java - 插入错误 : java. sql.SQLException: ORA-00911: 无效字符

java - 如何用数字创建一个正方形?

java - 为什么不在接口(interface) Comparator 中实现所有方法?

java - 相机 Intent 在某些设备上不起作用

javascript - 如何获得相对于应用了缩放变换的 div 的正确鼠标位置

javascript - 在滚动函数 jQuery 上添加 CSS 属性