如何在 Spring Framework 中处理表数据表单提交

How to handle Table data form submission in Spring Framework?

本文关键字:处理 数据 表单提交 Framework Spring      更新时间:2023-09-26

我正在寻找解决这个问题的好解决方案?

我只想将所有表数据提交到控制器中。行是动态创建的,而且它没有任何元素。在这里,对于处理整个表数据处理,我一点也不困惑。

<form action="controller.htm"   method="post">
<table>
<tr>
<td>one</td>
<td><two/td>
<td>three</td>
<td>four</td>
<td>five</td>
</tr>
<td>data11</td>
<td>data4</td>
<td>data5</td>
<td>data6</td>
<td>data 7</td>
</tr>
</table>
</form>
  1. 如何将表值发布到控制器中?
  2. 如何在控制器内部获取值?

我几乎找不到处理表数据的方法。使用表单将大量数据发布到控制器中可能不是一个好方法,即使我们没有任何输入类型 html 元素。

第 1 步:通过使用 Java 脚本遍历每个单元格来读取所有表数据。
第 2 步:通过指定列计数器将单元格元素添加到数组中。
步骤 3 完成每一行后,将数组添加到 jsonobject 中。
第 4 步:一旦迭代完成 stringfy json 对象并使用 Ajax 将 Json 字符串传递给控制器。

<script type="text/javascript">
function GetCellValues(dataTable) 
{
    var jsonObj = [];
    var jsonString;
    var table = document.getElementById(dataTable);
    for (var r = 0, n = table.rows.length; r < n; r++) {
        var item = {};
        for (var c = 0, m = table.rows[r].cells.length; c < m; c++){        
            if(c == 1){
                item ["data1"] =table.rows[r].cells[c].innerHTML;}
            else if(c==2){
                item ["data2"] =table.rows[r].cells[c].innerHTML;}
            else if(c==3){
                item ["data3"] =table.rows[r].cells[c].innerHTML;}
            else if(c==4){
                 item ["data4"] = table.rows[r].cells[c].innerHTML;} 
            else if(c==5){
                item ["data5"] =table.rows[r].cells[c].innerHTML;}
        }
        jsonObj.push(item);
    }
    jsonString = JSON.stringify(jsonObj);
   alert("Save your data "+ jsonString);
    $.ajax({
        type: "POST",
        url : "tableData.htm?jsonData="+jsonString,
        success: function(data){
            $("#").html(data);      
        },
        error:function(data){
            console.log("failure"+data);
            alert("failure"+data);
        }
    });  
}
</script>
我知道

这是一个较老的问题,但我也有类似的情况,并且提出了一些不同的做法。 我希望这对其他人有所帮助。

我让javascript解析<tr>元素的<table>,然后创建一个存储在隐藏<input>字段中的JSON字符串。

这是改编自另一个堆栈溢出帖子:从表行发布数据,如json格式

基本代码如下。

Full @ JSFiddle: http://jsfiddle.net/leisenstein/vy3ux/

// object to hold your data
function dataRow(value1,value2,value3) {
    this.dxCode = value1;
    this.dxDate = value2;
    this.dxType = value3;
}
// create array to hold your data
var dataArray = new Array(); 
// Start from 2 if you need to skip a header row
for(var i = 2; i <= $("table tr").length; i++){
        // create object and push to array
        dataArray.push(    
            new dataRow(
                $("table tr:nth-child(" + i + ") td").eq(0).html(),
                $("table tr:nth-child(" + i + ") td").eq(1).html(),
                $("table tr:nth-child(" + i + ") td").eq(2).html())
        );
}

var sJson = JSON.stringify(dataArray);