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

时间:2013-10-25 09:29:32

标签: javascript jquery html spring-data

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

我只想将所有表格数据提交到控制器中。行是动态创建的,也没有任何元素。这里对于处理整个表数据处理几乎没有什么困惑。

<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. 如何获取控制器内的值?

2 个答案:

答案 0 :(得分:4)

我几乎找不到处理表数据的方法。即使我们没有任何输入类型的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>

答案 1 :(得分:1)

我知道这是一个较旧的问题,但我遇到了类似的情况,并且提出了这个问题。我希望这有助于其他人。

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

这是根据另一个Stack Overflow帖子改编的:post data from table row like json format

基本代码如下。

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