如何在没有上传文件的情况下提交表单 spring mvc
How to submit a form with no file uploaded spring mvc
我有一个表单,其中有一些输入文本字段和一个输入文件字段,用于在我的数据库中注册一些条目。
现在我正在创建另一个表单来编辑同一个条目。我从数据库中检索数据并填写另一个表格,该表格具有与第一个表格相同的字段。不过,我没有填写输入文件值,因为出于安全原因,我无法以编程方式完成。
所以我让用户编辑他想要的任何内容并更新该条目。但是,如果用户不更改文件输入字段,我的代码将提交带有空文件输入的表单,因此我遇到 400(错误请求)错误,因为我的 ajax 请求没有找到我的 servlet .
这是一些编码:
在我的控制器中class:
@RequestMapping(value = RestUriConstants.SUBMETER, method = RequestMethod.POST)
public @ResponseBody JsonResponse submeter(@RequestPart("exercicio") final Exercicio exercicio,
@RequestPart("file") final MultipartFile file) {
...
}
和 Ajax 请求:
var exercicioObject = new Object();
exercicioObject.id = id;
exercicioObject.nome = nome;
exercicioObject.grupo = grupo;
var formData = new FormData();
formData.append("file", file.files[0]);
formData.append('exercicio', new Blob([JSON.stringify(exercicioObject)], {
type : "application/json"
}));
$.ajax({
url : '/Project/exercicio/submeter',
type : 'POST',
dataType : 'text',
data : formData,
processData : false,
contentType : false
});
如您所见,我正在设置一个 Json 对象,该对象将作为 Exercicio 对象传递到服务器,文件将作为 MultipartFile 对象传递。
因为我没有设置任何 MultipartFile 对象,我认为 Spring 没有找到我的 URL,它需要两个参数(Exercicio 和 MultipartFile),但我不知道如何传递MultipartFile 上的任何内容只是为了 Spring 将我的请求重定向到服务器中的正确方法。
不通过时请尝试使用@RequestPart(required=false)忽略。
我有一个表单,其中有一些输入文本字段和一个输入文件字段,用于在我的数据库中注册一些条目。
现在我正在创建另一个表单来编辑同一个条目。我从数据库中检索数据并填写另一个表格,该表格具有与第一个表格相同的字段。不过,我没有填写输入文件值,因为出于安全原因,我无法以编程方式完成。
所以我让用户编辑他想要的任何内容并更新该条目。但是,如果用户不更改文件输入字段,我的代码将提交带有空文件输入的表单,因此我遇到 400(错误请求)错误,因为我的 ajax 请求没有找到我的 servlet .
这是一些编码:
在我的控制器中class:
@RequestMapping(value = RestUriConstants.SUBMETER, method = RequestMethod.POST)
public @ResponseBody JsonResponse submeter(@RequestPart("exercicio") final Exercicio exercicio,
@RequestPart("file") final MultipartFile file) {
...
}
和 Ajax 请求:
var exercicioObject = new Object();
exercicioObject.id = id;
exercicioObject.nome = nome;
exercicioObject.grupo = grupo;
var formData = new FormData();
formData.append("file", file.files[0]);
formData.append('exercicio', new Blob([JSON.stringify(exercicioObject)], {
type : "application/json"
}));
$.ajax({
url : '/Project/exercicio/submeter',
type : 'POST',
dataType : 'text',
data : formData,
processData : false,
contentType : false
});
如您所见,我正在设置一个 Json 对象,该对象将作为 Exercicio 对象传递到服务器,文件将作为 MultipartFile 对象传递。
因为我没有设置任何 MultipartFile 对象,我认为 Spring 没有找到我的 URL,它需要两个参数(Exercicio 和 MultipartFile),但我不知道如何传递MultipartFile 上的任何内容只是为了 Spring 将我的请求重定向到服务器中的正确方法。
不通过时请尝试使用@RequestPart(required=false)忽略。