【问题标题】:Ajax send JSON array to servletAjax 将 JSON 数组发送到 servlet
【发布时间】:2014-04-30 07:30:51
【问题描述】:

我制作了一个表格,将表格的行和列相加。但现在我想计算 Servlet 中的总和。我将带有 JSON 的列和行数组发送到 Servlet。一切正常。但是现在的问题是,如何计算servlet中的行和列的总和并发送回来?

这是我的代码:

  $(document).on('change',function(){

     var columnValues={}, rowValues={};

     $("#sum_table tr").each(function(rowIndex){
          $("td input", $(this)).each(function(colIndex){
            var value=$(this).val();
            // indexes need +1 to get the row number, because 
            // the indexes are 0-based.
            if (undefined===columnValues[colIndex+1]){
              columnValues[colIndex+1]=[];
            }
            if (undefined===rowValues[rowIndex+1]){
              rowValues[rowIndex+1]=[];
            }
            rowValues[rowIndex+1].push(value);
            columnValues[colIndex+1].push(value);

          });

      });
            // send data to server
       $.ajax({
           url: 'ServletPost',
           type: 'post',
           data: {rows:rowValues, columns:columnValues},
           dataType: 'json',
           success: function(data){
               // insert your server-calculated data to dom   
               var rows = data.rows,
                columns = data.columns;

                // insert your server-calculated data to dom   
                $("td.total").each(function(rowIndex){
                    $(this).text(rows[rowIndex+1]);
                });

                $("tr.totalCol td").each(function(columnIndex){
                    $(this).text(columns[columnIndex+1]);
                });
           }
       }); 
});

提前感谢您!

【问题讨论】:

    标签: java ajax json servlets


    【解决方案1】:

    我不会告诉确切的解决方案,而是一种方法。

    0>

    $.ajax({
            url:"ServletPost",
            type:"POST",
            dataType:'json',
            data: {rows:rowValues, columns:columnValues},
            success:function(data){
                // codes....
            }
    
        });
    

    1> 在 servlet 中的 doPost() 函数中

     String[] rows= request.getParameterValues("rows[]");
     String[] columns= request.getParameterValues("columns[]");
    

    2> 求和。

    3> 返回 Json 结果

    response.setContentType("application/json");
    PrintWriter out = response.getWriter();
    String jsonStr = "{\"rows\": \""+rowsResult+"\",\"columns\":\""+columnsResult+"\"}";
    out.print(jsonStr);
    out.flush();
    

    【讨论】:

    • Integer[] rows= (Integer[]) request.getParemeter("rows"); 有问题Integer[] columns= (Integer[]) request.getParemeter("columns"); “无法从字符串转换为整数 []”
    • Tank You SeeThec,在行和列中我必须放置 getParameterValues 或 getParameter?并在 jsonStr = "{\"rows\": \"+rowsResult+"\",\"columns\": \"+columnsResult+"\"}";我写错了什么?谢谢!
    • @devtreat 它是一个 getParameterValues 。
    • @devtreat 关于 jsonstr 的第二个问题是什么?能否请您详细说明一下。
    • 试试这个 "{\"rows\":\""+rowsResult+"\",\"columns\":\""+columnsResult+"\"}"
    猜你喜欢
    • 2020-10-18
    • 2012-08-15
    • 1970-01-01
    • 2013-01-26
    • 2021-07-09
    • 1970-01-01
    • 2017-12-30
    • 2015-01-29
    • 1970-01-01
    相关资源
    最近更新 更多