程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了HTML表单提交不适用于Spring Boot 2.3.1大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决HTML表单提交不适用于Spring Boot 2.3.1?

开发过程中遇到HTML表单提交不适用于Spring Boot 2.3.1的问题如何解决?下面主要结合日常开发的经验,给出你关于HTML表单提交不适用于Spring Boot 2.3.1的解决方法建议,希望对你解决HTML表单提交不适用于Spring Boot 2.3.1有所启发或帮助;

我认为这是Spring Data Commons的错误:

  • 将uRI段和请求参数转换为汇总的结果

此错误影响Spring Boot版本2.3.1、2.2.8和2.1.15。

ToEntityConverter 不能按预期工作。

[更新]

此错误已在2.4.0-M1、2.3.2和2.2.9中修复,但未在2.1.16中修复。

  • https://docs.spring.io/spring-data/commons/docs/current/changelog.txt

解决方法

从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.7提交表单时,会将HTML表单中的“ c”(选择保留类别ID)转换为SearchForm.java中的类别实体

切换到Spring Boot 2.3.1之后,它不再起作用。而是在日志中显示错误:

大佬总结

以上是大佬教程为你收集整理的HTML表单提交不适用于Spring Boot 2.3.1全部内容,希望文章能够帮你解决HTML表单提交不适用于Spring Boot 2.3.1所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。