【发布时间】:2017-03-31 18:04:58
【问题描述】:
这是我托盘的 Web 项目,用于将数据从表单发送到服务器(Spring 部分)。我使用 Ajax 向服务器发送多部分请求。如果用户留下空的表单字段,就会出现问题。如果所有表单输入完成请求工作正常。我找到了一些帖子,但这不是我的情况,也不适用于多部分请求。在项目中,我不使用 @Valid @NotNull 之类的注释来检查服务器端的有效性。 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;
}
【问题讨论】:
标签: ajax spring forms spring-mvc