从spring boot 2.2.7切换到spring boot 2.3.1后,针对我的特定案例提交表单时的实体转换不再有效
category.java
@Entity @Getter @Setter
public class Category implements Serializable {
private Integer id;
private String name;
}
searchForm.java:
@Getter @Setter
public class SearchForm implements Serializable {
private String q;
private Category c;
}
HTML表单:
<form method="get" th:action="@{/}" th:object="${searchForm}">
<input th:field="*{q}" type="text" />
<select th:field="*{c}">
<option th:each="cat : ${categories}" th:value="${cat.id}" th:text="${cat.name}" />
</select>
</form>
controller.java:
@PostMapping
public String post( @ModelAttribute final SearchForm searchForm ) {
// ...
}
以前在spring boot 2.2.7form submit将“C”从HTML表单(select持有类别的ID)转换为SearchForm.java中的类别实体
在切换到spring boot 2.3.1之后,这就不再起作用了。日志中会显示错误:
字段“C”上的对象“Search Form”中的字段错误:拒绝值[424];代码[typemismatch.searchform.c,typemismatch.c,typemismatch.com.thevegcat.app.category.category,typemismatch];参数[org.springframework.context.support.defaultmessageSourceResolvable:代码[searchform.c,c];参数[];default message[c]];默认消息[无法将“java.lang.String”类型的属性值转换为属性“C”的必需类型“com.theVegcat.app.category.category”;嵌套异常为java.lang.IllegalStateException:无法将“java.lang.String”类型的值转换为属性“C”的必需类型“com.theVegcat.app.category.category”:找不到匹配的编辑器或转换策略]]
我认为是spring数据公域的一个bug:
此bug影响spring boot 2.3.1、2.2.8和2.1.15版本。
ToEntityConverter
无法按预期工作。
[更新]
该bug已在2.4.0-M1、2.3.2和2.2.9上修复,但未在2.1.16上修复。
参考文献:
问题内容: 从Spring Boot 2.2.7切换到Spring Boot 2.3.1后,针对我的特定情况,在提交表单时进行实体转换不再起作用 Category.java SearchForm.java: HTML形式: Controller.java: 以前使用Spring Boot 2.2.7提交表单时,会将HTML表单中的“ c”(选择保留类别ID)转换为SearchForm.java中的
问题内容: 我有一个表格。在该表格之外,我有一个按钮。一个简单的按钮,如下所示: 但是,当我单击它时,它会提交表单。这是代码: 该按钮应该做的就是编写一些JavaScript。但是,即使看起来像上面的代码一样,它也会提交表单。当我将标签按钮更改为跨度时,它可以完美工作。但不幸的是,它必须是一个按钮。有什么办法可以阻止该按钮提交表单?像例如 问题答案: 我认为这是HTML最令人讨厌的小特性。该按钮必
问题内容: 我希望HTML表单在提交后不执行任何操作。 这是不好的,因为它会导致页面重新加载。 基本上,我希望每当按下按钮或有人在键入数据后单击“输入”时都调用ajax函数。是的,我可以删除表单标签并添加,只需从按钮的onclick事件中调用该函数即可,但是我也希望“命中进入”功能而不会引起任何麻烦。 问题答案: 通过在通过“提交”按钮调用的javascript中使用,可以停止提交表单。 基本上,
嗨,伙计们,我一直与使用超文本标记语言和PHP的网站之一有麻烦 表单似乎没有提交或发送消息。附件是代码请任何帮助将是伟大的。另外,还附上了PHP和javascript作为参考。有时页面也不响应按钮。如果有人能修复代码将是伟大的。
问题内容: 我试图使用此示例使用AJAX提交HTML表单。 我的HTML代码: 我的剧本: 这是行不通的,我什至没有收到警告消息,提交时我不想重定向到另一个页面,我只想显示警告消息。 有简单的方法吗? PS:我有几个领域,我仅举两个例子。 问题答案: AJAX快速描述 AJAX只是异步JSON或XML(在大多数新情况下为JSON)。因为我们正在执行ASYNC任务,所以我们很可能会为我们的用户提供更
主要内容:Maven依赖关系,提交HTML表单参数示例许多应用程序需要模拟提交HTML表单的过程,以便登录到Web应用程序或提交输入数据。 HttpClient提供实体类来促进该过程。 以下教程显示了如何使用apache HttpClient 4.5发送HTML表单参数。 Maven依赖关系 我们使用maven来管理依赖关系,并使用Apache HttpClient 4.5版本。 将以下依赖项添加到您的项目中。 pom.xml 文件的内容如下 - 提