我编写的Java中作为控制器的方法获得了如下所示的File类型参数。
@RequestMapping(value = "/user/insertUser")
public String insertUser(@RequestParam("imageFile") CommonsMultipartFile file,
HttpSession session) throws Exception {
......}
我的问题是,当JSP没有发送File参数时,我该如何处理它。 我不确定我的解释是否可以理解。
答案 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”然后你会得到它。