表单提交multipart/form-data,获取非文件参数的问题

接收multipart/form-data类型的参数,post请求,我在后台接收到是这样的

图片说明

普通的getParameter()方法获取的是null,这个该怎么处理呢?求大佬赐教

    DiskFileItemFactory factoy=new DiskFileItemFactory();
    ServletFileUpload sfu=new ServletFileUpload(factoy);
    //解析request
    try {
        List<FileItem> list=sfu.parseRequest(request);
        for (FileItem fileItem : list) {
            fileItem.getFieldName();
            //判断是表单元素还是文件元素
            fileItem.isFormField();
            System.out.println(fileItem.getString());
        }

    } catch (FileUploadException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

你的input框 的name 对应上实体类的字段,然后用FormData对象组装数据传到后台,用实体类获取就可以了啊

//假如有个实体类 TestVo
public class TestVo{
    private String data;
    private String password;
    //get set
}

<form id="addForm" class="form-horizontal" method="post" enctype="multipart/form-data">
    <input type="text" class="form-control" name="data" >
    <input type="text" class="form-control" name="password" >
</form>

//js
var formFile = new FormData();
$("#addForm :input").each(function(){
    formFile.append(this.name, this.value);
});

$.ajax({
    url:'xx/xx/insert', 
    data: formFile,
    type: "POST",
    dataType: "json",
    success: function (json) {

    }
})

    //Controller
    @PostMapping(value = "insert", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    public String insertData(HttpServletRequest request,TestVo entity,MultipartFile file){
        return "success";
    }

你可以直接把要取出的参数直接人为的加在url屁股后面用&分割