我想用名称和/或图片更新用户。
名称始终在输入上,因为我从数据库中获取但fileUpload是可选的。
如何让我的控制器处理fileUpload的可选参数?
Atm,如果我没有上传我正在上传的东西
HTTP状态400 - 必需的请求部分'fileUpload'不存在
Spring控制器
@RequestMapping(value = "/user/update", method = RequestMethod.POST)
public @ResponseBody String updateUser(HttpSession session,@RequestParam("name") String name, @RequestParam("fileUpload") MultipartFile image) {
String loggedUser = session.getAttribute("loggedUser").toString();
return User.updateUser(loggedUser,name,image);
}
的Ajax
function updateUserSettings() {
var name = $('#userName').val();
var formData = new FormData();
formData.append("name", name);
formData.append("fileUpload", file);
$.ajax({
type: 'post',
url: '/user/update',
data: formData,
enctype: 'multipart/form-data',
processData: false,
contentType: false
});
}
答案 0 :(得分:4)
改变这个:
... @RequestParam("fileUpload") MultipartFile image
为:
... @RequestParam(value="fileUpload", required=false) MultipartFile image
有关可用开关的详细信息,请参阅docs。