这是web项目我托盘将数据从表单发送到服务器(Spring部分)。我用Ajax向服务器发送multipart请求。如果用户离开空表单字段,则会出现问题如果所有表格输入完成请求工作正常。我发现了一些帖子,但这不是我的情况,不适用于多部分请求。在项目中,我不使用像@Valid @NotNull这样的anotetion来检查服务器端的有效性。 Spring没有显示错误,只有Firebug显示网络错误400错误请求。代码出了什么问题。检查多部分请求的空表单字段的有效性的最佳方法是什么。
Ajax代码
function casePostUpload()
{
var myForm = form.find('formAddPoster');
myData = new FormData();
myData.append('multipart', myForm);
enter code her$
.ajax({
url : "/video/addCasePost",
//url: urlFromActionFild,
data : myForm,
// data : myData,
type : 'POST',
headers: {'Content-Type': undefined},
enctype: 'multipart/form-data',
processData: false,
contentType:false,
success : function(data, textStatus, jqXHR){
$('#casePost').prepend('<br/>Poster: '+data.casePoster+' :: title '+data.caseTitle+' at '+data.timestampAsStr+'<br/></td></tr>');
},
error : function(result){
//...;
alert('add contnt error: ' + errorThrown);
}
});
}
Spring MVC控制器
@RequestMapping(value = "/video/addCasePost", method = RequestMethod.POST )
public @ResponseBody CasePost addcasepost( @RequestPart("caseTitle") String caseTitleString,
@RequestPart("file") MultipartFile file, HttpServletRequest request, Model model, @ModelAttribute("currentuser") User currentuser) throws Exception {
CasePost jsResponse = new CasePost();
}catch (Exception e) {
log.error(e);
}
}
try {
if (caseTitleString != null) {
jsResponse.setCaseTitle(caseTitleString);
jsResponse.setCasePoster(filePath);
jsResponse = graphStoryInterface.getCasePostInterface().add(jsResponse, currentuser);
}
}
catch (Exception e) {
log.error(e);
}
return jsResponse;
}
答案 0 :(得分:0)
默认情况下,除非另有说明,否则Spring需要params。设置@RequestPart(required = false,value =“aFieldName”)