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";
}