Я использую Spring MVC SimpleFormController в сочетании с формой Spring MVC JTL, чтобы создать форму для редактирования универсального объекта.
В моей форме у меня есть раскрывающийся список, где пользователь может указать сервер через выпадающее меню.
<form:form commandName="generic">
<form:select path="server">
<form:options items="${servers}" itemValue="id" itemLabel="name"/>
</form:select>
</form:form>
Здесь серверы распространяются вызовом базы данных для всех доступных серверов. сервер является ORM-сервером ORM, который является под-объектом другого ORM pojo (Generic), который служит в качестве объекта поддержки формы.
Моя цель здесь - изменить ссылку на общий сервер, которая представлена на уровне базы данных в качестве внешнего ключа для таблицы сервера.
Я использую JPA как мой уровень персистентности и JPA сгенерированные классы сущностей в качестве моих ORM pojos.
К сожалению, это не похоже на обязательную привязку, когда моя форма отправляется, поскольку она не может переводить из String в Server.
Field error in object 'generic' on field 'server': rejected value [1]; codes [typeMismatch.generic.server,typeMismatch.server,typeMismatch.com.generic.orm.jpa.Server,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [generic.server,server]; arguments []; default message [server]]; default message [Failed to convert property value of type [java.lang.String] to required type [com.generic.orm.jpa.Server] for property 'server'; nested exception is java.lang.IllegalArgumentException: Cannot convert value of type [java.lang.String] to required type [com.generic.orm.jpa.Server] for property 'server': no matching editors or conversion strategy found], generic=com.generic.orm.jpa.generic[id=3]} and static attributes {}
Я искал пример того, как это сделать без везения. Я считаю, что мне нужно перезаписать что-то в SimpleFormController, как это было в этом вопросе, но Spring документация MVC освещена в деталях. Может ли кто-нибудь помочь мне здесь?