接收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屁股后面用&分割