gpt4 book ai didi

java - 未填写所有 Spring 表单字段并收到错误请求错误 400

转载 作者:行者123 更新时间:2023-12-02 11:12:53 25 4
gpt4 key购买 nike

我有这个 hibernate 模型:

@Entity
@Table(name="BlogPost")
public class BlogPost implements Serializable {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;

@Column
private String title;

@Column
private String text;

@Column(name="creation_date")
private Date creationDate;

@ManyToOne
@JoinColumn(name = "cat_id")
private PostCategory category;
}

这个表格:

       <form:form action="saveBlogPost" method="post" modelAttribute="blogPost">
<table>
<form:hidden path="id"/>
<tr>
<td>Title:</td>
<td><form:input path="title" /></td>
</tr>
<tr>
<td>Text:</td>
<td><form:input path="text" /></td>
</tr>
<tr>
<td>Category:</td>
<td>
<form:select path="category">
<c:forEach items="${allCats}" var="cat" >
<form:option value="${cat.id}">
${cat.title}
</form:option>
</c:forEach>
</form:select>
</td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="Save"></td>
</tr>
</table>
</form:form>

以及这个 Controller 方法:

@RequestMapping(value = "/saveBlogPost", method = RequestMethod.POST)
public ModelAndView saveEmployee(@ModelAttribute BlogPost blogPost) {
if (blogPost.getId() == 0) {
blogPost.setCategory(postCategoryServiceImpl.getPostCategory(blogPost.getCategory().getId()));

blogPost.setCreationDate(new Date());
blogPostServiceImpl.addBlogPost(blogPost);
} else {
blogPostServiceImpl.updateBlogPost(blogPost);
}
return new ModelAndView("redirect:/");
}

我在 Controller 和 Spring 表单完成的其他字段中设置了我的 creationDate 。我怀疑未在表单中设置 creationDate 导致表单提交时出现错误请求错误。

我应该怎样做才能避免这个错误?

最佳答案

看起来与Spring MVC Error: Failed to convert property value of type java.lang.String to required type有同样的问题。

<form:select>只提交一个字符串值,您告诉 Spring 将其放入 PostCategory 中对象。

尝试告诉它将该值放入 category子对象的id字段:

<form:select path="category.id">

关于java - 未填写所有 Spring 表单字段并收到错误请求错误 400,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50492543/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com