当前位置: 首页 > 面试题库 >

从String转换为Spring MVC表单的自定义对象数据绑定?

冯俊英
2023-03-14
问题内容

我将Spring MVC的SimpleFormController与Spring MVC的表单JTL结合使用,以创建用于编辑Generic对象的表单。

在我的表单上,我有一个下拉菜单,用户可以通过下拉菜单指定服务器。

<form:form commandName="generic">
    <form:select path="server">
        <form:options items="${servers}" itemValue="id" itemLabel="name"/>
    </form:select>
</form:form>

通过对所有可用服务器的数据库调用来传播此处的服务器。server是一个服务器ORM pojo,它是另一个ORM pojo(通用)的子对象,该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的文档对细节不多。有谁可以帮我离开这里吗?


问题答案:

我认为你是对的。你需要像之前一样在活页夹上注册一个自定义编辑器,以便可以将String转换为Server实例。有一个自定义的属性编辑器的例子这里在Spring参考文档,应该让你开始。

我同意MVC文档不是最好的。我不得不在spring论坛上做很多谷歌搜索和搜索工作。



 类似资料:
  • 问题内容: 我正在尝试将表单数据转换为对象,但我有这个线程,但是我不知道为什么它对我不起作用。我正在使用以下代码。 我尝试调试它,并注意到当我的函数运行时,它总是在else语句中运行代码。 问题答案: 我在JSFiddle中添加了以上表单,它将JSON数据显示为输出。 工作中的JSFiddle

  • 如何将JS对象转换为? 我想这样做的原因是,我有一个对象,是我从~100个表单字段值中构造出来的。 现在我被要求将上载文件功能添加到表单中,当然,通过JSON这是不可能的,所以我计划转移到。那么,有什么方法可以将我的JS对象转换为吗?

  • 使用代替和代替 然后在请求属性中添加 但是当我在javascript中检索它时,我得到了jsonObject的值 我在我的项目中已经使用了下面的库,如果需要,可以使用任何新的库

  • 问题内容: 我正在尝试为Json.NET创建一个自定义ValueProvider,它将跳过序列化所有对象的过程,并将仅返回Guid类型的属性来表示其主键(作为参考)。 例: 应成为: 这是我到目前为止编写的代码。我非常接近使其工作,但是就我而言,我似乎无法获取对象值。我怎样才能做到这一点? 问题答案: 您希望将值从嵌套对象内部提升到父对象。为此,您需要将两个价值提供者链接在一起: 一个外部值提供者

  • 我将springboot控制器与@RequestBody一起使用。我有以下json请求正文 我有一个对应的POJO 我有控制器就像 显然它不起作用,因为是请求中的字符串,而它在MyObject中是布尔值。我希望它有一个逻辑,所以如果在请求中,它将在MyObject中转换为布尔值。Spring有什么机制来实现这一点?

  • 本文向大家介绍SpringMVC实现数据绑定及表单标签,包括了SpringMVC实现数据绑定及表单标签的使用技巧和注意事项,需要的朋友参考一下 首先理解数据绑定 为什么要使用数据绑定 基于HTTP特性,所有的用户输入的请求参数类型都是String,比如下面表单: 但我们提交后,为了将请求信息映射到模型中,还需要手动进行格式转换,此外还借助了一个中转对象productForm,其字段名称和Produ