首页 > 解决方案 > 无法将 StandardMultipartHttpServletRequest$StandardMultipartFile 类型的值转换为所需的类型 java.lang.String

问题描述

我有一个可以上传文件的简单表格,它是控制器,为了安全起见,我决定实施 PRG 模式,但现在我的 cod 不起作用。

     @PostMapping("/books")
public String add(@Valid @ModelAttribute("book") Book book, HttpServletResponse response,RedirectAttributes redirectAttributes, BindingResult result, @RequestParam(value = "photo", required = false) MultipartFile photo, Model forExc, @RequestParam(value = "valute") String valute) {
    if (result.hasErrors()) return "addBook";
    if (!photo.isEmpty()) {
        try {
            validateImg(photo);
        } catch (IOException ex) {
            result.reject("uk_UA", "Поганий тип");
            return "addBook";
        }
    }
    redirectAttributes.addFlashAttribute("book",book);
    redirectAttributes.addAttribute("photo", photo);
    redirectAttributes.addAttribute("valute", valute);

      redirectAttributes.addFlashAttribute( "success",true);

    return "redirect:/valid";
}

@GetMapping("/valid")
public String validations(HttpServletRequest request,Model model, @ModelAttribute("success") boolean success, @ModelAttribute("book") Book book, @RequestParam("valute") String valute, @RequestParam(value = "photo",required = false) MultipartFile photo) {
     if (success) {
         StringBuilder builder = new StringBuilder();
         builder.append(service.download(photo));
         Logger.getAnonymousLogger().info("SOMETHING HAS BROKEN IN LOGGING FILE");
         System.out.println("INSIDE ADD METHOD ");
         book.setFileId(builder.toString());
         service.add(book);

         return "redirect:/books";
     } else {
         return "redirect:/index.jsp";
     }
}

当我添加一本书时,我得到了这个例外:

                  org.springframework.beans.ConversionNotSupportedException: Failed to convert value of type 'org.springframework.web.multipart.support.StandardMultipartHttpServletRequest$StandardMultipartFile' to required type 'java.lang.String'; nested exception is java.lang.IllegalStateException: Cannot convert value of type 'org.springframework.web.multipart.support.StandardMultipartHttpServletRequest$StandardMultipartFile' to required type 'java.lang.String': no matching editors or conversion strategy found

标签: javaspringspring-mvc

解决方案


推荐阅读