首页 > 解决方案 > FormData 追加列表对象

问题描述

数据不会从 ajax 传递到控制器

我有以下模型。

    @Setter
    @Getter
    public class Board {
        int bno;
        String bcontent;
        CustomUser user;
        .
        .
        .
        List<File> filevo;
    }

    @Setter
    @Getter
    public class File { 
        int fno;
        String file_path;
    }

我像这样编写 JavaScript:

    var rmvFileArr = new Array();

    function remove(fno){
        var fileObj = new Object(); 
        var src = $("#fileno"+fno+" img").attr('src');
        fileObj.fno=fno;
        fileObj.file_path=src;
        rmvFileArr.push(fileObj);
    }

    formData.append("filvo", rmvFileArr);
    for(var i =0; i<rmvFileArr.length; i++){
        formData.append("filvo["+ i +"].fno", rmvFileArr[i].fno);
        formData.append("filvo["+ i +"].file_path",
                rmvFileArr[i].file_path);
    }
    formData.append("bcontent",document.getElementById("autosize").value);
    formData.append("user.uno",document.getElementById("uno").value);

'array push' 工作得很好,比如rmvFileArr.push(fileObj). 我检查了控制台。

   public String upload(@ModelAttribute Board board) throws Exception{

              .
              .
              .


     logger.info("filevo " +
                            board.getFilevo().get(0).getFno()); 
   }    

board.getFilevo().get(0).getFno()导致零点错误。所有数据都被传递,除了List<File> filevo.
数组怎么会来到控制器?

标签: javascriptjavaspringform-data

解决方案


推荐阅读