HTML отправка формы не работает с Spring Boot 2.3.1 - PullRequest
4 голосов
/ 20 июня 2020

Преобразование объекта при отправке формы для моего конкретного случая c больше не работает после перехода с Spring Boot 2.2.7 на Spring Boot 2.3.1

Категория. 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>

Контроллер. java:

@PostMapping
public String post( @ModelAttribute final SearchForm searchForm ) {
    // ...
}

Ранее с Spring Отправка формы в загрузке 2.2.7 преобразует "c" из формы HTML (выберите содержит идентификатор категории) в сущность категории в SearchForm. java

После переключения на Spring Boot 2.3.1 это больше не работает. Вместо этого в журнале отображается ошибка:

Ошибка поля в объекте searchForm в поле 'c': значение отклонено [424]; коды [typeMismatch.searchForm. c, typeMismatch. c, typeMismatch.com.thevegcat.app.category.Category, typeMismatch]; аргументы [org.springframework.context.support.DefaultMessageSourceResolvable: коды [searchForm. c, c]; аргументы []; сообщение по умолчанию [c]]; сообщение по умолчанию [Не удалось преобразовать значение свойства типа 'java .lang.String' в требуемый тип 'com.thevegcat.app.category.Category' для свойства 'c'; вложенное исключение: java .lang.IllegalStateException: невозможно преобразовать значение типа 'java .lang.String' в требуемый тип 'com.thevegcat.app.category.Category' для свойства 'c': нет подходящих редакторов или найдена стратегия конверсии]]

1 Ответ

3 голосов
/ 20 июня 2020

Я думаю, что это ошибка Spring Data Commons:

Эта ошибка влияет на 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.

ссылки:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...