Java中的可选参数

时间:2018-02-02 09:40:48

标签: javascript java ajax spring spring-mvc

我想用名称和/或图片更新用户。

名称始终在输入上,因为我从数据库中获取但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
});

}

1 个答案:

答案 0 :(得分:4)

改变这个:

... @RequestParam("fileUpload") MultipartFile image

为:

... @RequestParam(value="fileUpload", required=false) MultipartFile image

有关可用开关的详细信息,请参阅docs