当参数为null作为参数时

时间:2017-05-10 07:01:46

标签: java spring-mvc

我编写的Java中作为控制器的方法获得了如下所示的File类型参数。

@RequestMapping(value = "/user/insertUser")
public String insertUser(@RequestParam("imageFile") CommonsMultipartFile file,
        HttpSession session) throws Exception {
......}

我的问题是,当JSP没有发送File参数时,我该如何处理它。 我不确定我的解释是否可以理解。

6 个答案:

答案 0 :(得分:4)

您可以设置defaultValue来处理null案例:

@RequestMapping(value = "/user/insertUser")
public String insertUser(@RequestParam(value = "imageFile",  required = false, defaultValue = "/default/path/to/file") CommonsMultipartFile file,
        HttpSession session) throws Exception {
......}

答案 1 :(得分:0)

我相信你正试图让它成为可选择的

 @RequestParam(value = "imageFile", required = false)

答案 2 :(得分:0)

您可以按照以下方式执行此操作:

@RequestMapping(value = "/user/insertUser")
public String insertUser(@RequestParam("imageFile") CommonsMultipartFile file,
        HttpSession session) throws Exception {

        if(file!=null && !file.isEmpty()) {
           //file is uploaded successfully
        } else {
           //file is not uploaded
        }
}

答案 3 :(得分:0)

您需要为required = false

提供imageFile
@RequestMapping(value = "/user/insertUser")
public String insertUser(@RequestParam("imageFile", required = false) CommonsMultipartFile file,HttpSession session) throws Exception {
......}

答案 4 :(得分:0)

如果您的问题是您是否可以提供可选参数作为请求参数,则只需将@RequestParam更改为以下内容即可。

@RequestParam(value = "imageFile", required = false) CommonsMultipartFile file

如果您使用的是Java 8,也可以执行以下操作。

@RequestParam("imageFile") Optional<CommonsMultipartFile> file

如果您的问题不是这样,请提供更多详细信息。

答案 5 :(得分:0)

您可以在此处将此参数设为required = false,以便您可以选择是否使用此参数。

{
    @RequestMapping(value = "/user/insertUser")
    public String insertUser(@RequestParam(value="imageFile",required=false) CommonsMultipartFile file,
        HttpSession session) throws Exception {
......}
}

使用这个,如果你发送“imageFile”,那么你将进入服务器,否则你没有发送“imageFile”然后你会得到它。