Html 拒绝值[org.springframework.web.multipart.support.StandardMultipartTTPServletRequest]$StandardMultipartFile@e960796];

Html 拒绝值[org.springframework.web.multipart.support.StandardMultipartTTPServletRequest]$StandardMultipartFile@e960796];,html,image,spring-boot,thymeleaf,Html,Image,Spring Boot,Thymeleaf,错误 2021-02-08 20:39:15.717 WARN 11628 --- [nio-8080-exec-7] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 1 errors Field error in object '

错误

2021-02-08 20:39:15.717  WARN 11628 --- [nio-8080-exec-7] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 1 errors
Field error in object 'blog' on field 'display_image': rejected value [org.springframework.web.multipart.support.StandardMultipartHttpServletRequest$StandardMultipartFile@c1a5253]; codes [typeMismatch.blog.display_image,typeMismatch.display_image,typeMismatch.java.lang.String,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [blog.display_image,display_image]; arguments []; default message [display_image]]; default message [Failed to convert property value of type 'org.springframework.web.multipart.support.StandardMultipartHttpServletRequest$StandardMultipartFile' to required type 'java.lang.String' for property 'display_image'; nested exception is java.lang.IllegalStateException: Cannot convert value of type 'org.springframework.web.multipart.support.StandardMultipartHttpServletRequest$StandardMultipartFile' to required type 'java.lang.String' for property 'display_image': no matching editors or conversion strategy found]]
班级博客

@Entity
@Table(name="BLOG") 
public class Blog {
    
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int bId;
    @Column(length = 100)
    private String title;
    @Column(length = 200)
    private String shortDescription;
    private String description;
    private String date;
    private String image;
    private String display_image;
    private String prof_image;
    
    @ManyToOne
    private User user;

    
    public Blog() {
        super();
        // TODO Auto-generated constructor stub
    }

    public int getbId() {
        return bId;
    }

    public void setbId(int bId) {
        this.bId = bId;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getShortDescription() {
        return shortDescription;
    }

    public void setShortDescription(String shortDescription) {
        this.shortDescription = shortDescription;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getDate() {
        return date;
    }

    public void setDate(String date) {
        this.date = date;
    }

    public String getImage() {
        return image;
    }

    public void setImage(String image) {
        this.image = image;
    }

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }

    public String getDisplay_image() {
        return display_image;
    }

    public void setDisplay_image(String display_image) {
        this.display_image = display_image;
    }

    public String getProf_image() {
        return prof_image;
    }

    public void setProf_image(String prof_image) {
        this.prof_image = prof_image;
    }

  
}
用户控制器类

@Controller
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserRepo userRepo;

    @RequestMapping("/index")
    public String dashboard(Model model, Principal principal) {

        String username = principal.getName();
        System.out.println("User name " + username);

        User user = userRepo.getUserByUserName(username);
        System.out.println("User " + user);

        model.addAttribute("user", user);

        return "normal/user_dashboard";

    }

    
    
    @GetMapping("/add-blog")
    public String AddBlog(Model model) {
        model.addAttribute("title", "Add Blog");
        model.addAttribute("blog", new Blog());
        
        return "normal/add_blog";
        
    }
    
    
    @PostMapping("/process-blog")
    public String BlogProcess(@ModelAttribute Blog blog,Principal principal) {
        
        
        String name=principal.getName();
        User user = this.userRepo.getUserByUserName(name);
        
        user.getBlogs().add(blog);
        this.userRepo.save(user);
        
        
        System.out.println("data "+ blog);
        
        System.out.println("Added to the data base ");
        
            
        return "normal/add_blog";
        
        
    }
}
添加blog.html

<!doctype html>

<html lang="en" xmlns:th="http://www.thymeleaf.org"
    th:replace="normal/base::layout(~{::section})">
<head>
<meta charset="utf-8">

<title>This is home page</title>
<link rel="stylesheet"
    href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"
    integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T"
    crossorigin="anonymous">

<link rel="stylesheet" th:href="@{/richtext/richtext.min.css}">

<script type="text/javascript"
    th:href="@{/richtext/jquery.richtext.min.js}"></script>

</head>

<body>

    <!-- This is card section -->
    <section>

        <div class="card">
            <div class="card-body text-center">
                <h1>Add Blog</h1>
                <div class="container-fluid mt-1">
                    <div class="row">
                        <div class="col-md-10 offset-md-1">

                            <form action="#" th:object="${blog}"
                                enctype="multipart/form-data" method="post"
                                th:action="@{/user/process-blog}" class="mt-2">


                                <!--  Title------------------------------------------------------------------------------------- -->
                                <div class="input-group">
                                    <div class="input-group-prepend">
                                        <div class="input-group-text">
                                            <i class="fa fa-plus">+</i>



                                        </div>




                                    </div>

                                    <input type="text" id="title" name="title"
                                        placeholder="Enter Your Title" class="form-control">

                                </div>

                                <!-- title------------------------------------------------------------------------------------------------------------------------------------- -->

                                <!-- shortDescription--------------------------------------------------------------------------------------------------------------------------- -->


                                <div class="input-group mt-2">
                                    <div class="input-group-prepend">
                                        <div class="input-group-text">
                                            <<i class="glyphicon glyphicon-user"> </i>



                                        </div>




                                    </div>

                                    <input type="text" id="shortDescription"
                                        name="shortDescription"
                                        placeholder="Short Description About Your Blog"
                                        class="form-control">

                                </div>

                                <!-- shortDescription---------------------------------------------------------------------------------------------------------------------------- -->
                                <!-- img Upload-------------------------------------------------------------------------- -->

                                <div class="custom-file">
                                 <input type="file" name="display_image">
                                
                                
                                </div>



                                <!-- img Upload-------------------------------------------------------------------------- -->


                                <!-- Description===============------------------------------- -->

                                <div class="form-group">
                                    <label for="Password-F">Enter Something Yourself</label>
                                    <textarea class="form-control" id="Description"
                                        placeholder="Enter about your self" cols="40" rows="10"
                                        name="description"> 
                                        
                                        
                                </textarea>
                                </div>
                                <!-- th:value="${user.about}" -->

                                <!-- Description===============------------------------------- -->



                                <!-- img upload in description -->


<!-- 
                                <div class="custom-file">
                                 <input type="file" name="image">
                                
                                
                                </div>
 --

                                <!-- img upload in description -->


                                <div class="text-center">
                                    <button type="submit" class="btn bg-primary text-white">
                                        Add</button>

                                </div>

                            </form>

                        </div>

                    </div>

                </div>

            </div>

        </div>

    </section>
    <!-- End of the card section  -->


    <script src="js/scripts.js">
        $(document).ready(function() {
            $("#Description").richText();

        })
    </script>
    <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"
        integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo"
        crossorigin="anonymous"></script>
    <script
        src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"
        integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1"
        crossorigin="anonymous"></script>
    <script
        src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"
        integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM"
        crossorigin="anonymous"></script>
</body>
</html>

这是主页
添加博客
+
自己输入一些东西
添加
$(文档).ready(函数(){
$(“#说明”).richText();
})

您需要以
多部分文件的形式接收上载文件

公共类BlogForm{
私有字符串标题;
私有字符串短描述;
私有多部分文件显示图像;
//接球手和接球手。。。
}
@PostMapping(“/process blog”)
公共字符串BlogProcess(@modeldattribute BlogForm form,Principal){
// ...
并将
BlogForm
转换为
Blog

实体
不能包含
多部分文件

@RequestMapping(“/account create”)
公共字符串create(@modeldattribute(“item”)Account pr,bindingsresult,Model Model,@RequestParam(“image”)MultipartFile MultipartFile){
String filenameString=StringUtils.cleanPath(multipartFile.getOriginalFilename());
字符串上传drstring=“头像”;
pr.setImage(filenameString);
保存(multipartFile,uploadDrString);
List items=dao.findAll();
model.addAttribute(“项”,项);
dao.save(pr);
返回“重定向:/admin列表帐户”;
}

获取下面的错误无法确定以下列的类型:org.springframework.web.multipart.MultipartFile,位于table:blog中:[org.hibernate.mapping.Column(display_image)]
@RequestMapping("/account-create")
    public String create(@ModelAttribute("item") Account pr,BindingResult result ,Model model,@RequestParam("image") MultipartFile multipartFile) {     
        String filenameString= StringUtils.cleanPath(multipartFile.getOriginalFilename());
         String uploadDrString="avatar";
         pr.setImage(filenameString);
         paramService.save(multipartFile, uploadDrString);
        List<Account> items = dao.findAll();
        model.addAttribute("items", items);
        dao.save(pr);
        return "redirect:/admin-list-account";
    }