【发布时间】:2011-08-15 18:35:16
【问题描述】:
我有一个 html/jsp 表单,我正在序列化(使用 jquery)并通过 ajax 传递给 spring 控制器。其实就是绑定了一个属性的spring-mvc形式。
我的第一个问题是:当我通过 ajax 从表单传递数据时,此绑定不相关?
其次,它绑定的对象是一个相当复杂的休眠实体对象,我在将 json 转换为对象的实例时遇到问题 - 它具有对其他对象等的引用等,实际上我不确定是什么确切的问题是错误消息不是特别清楚:Content type 'application/json' not supported。
是否应该使用 DTO/值对象而不是实体对象,然后基于 DTO 创建实体对象?
或者,我是否应该追踪导致 json 转换失败的实体对象/表单中的问题字段,这将是耗时且乏味的,但在我看来最终结果更整洁。
欢迎提出建议。
编辑: 当简单的表单/对象只有几个字符串属性和相关的 getter/setter 时,它们的转换工作正常。 The controller and javascript code.
【问题讨论】:
-
“实际上我不确定确切的问题是什么,因为错误消息特别清楚” 这是自相矛盾的。如果错误消息很清楚,为什么您不知道确切的问题是什么?顺便说一句,你的标题真的应该改进一下。
-
@BalusC 是拼写错误。我很喜欢这个标题。
-
这个错误基本上是在告诉你的Spring控制器不支持
application/json格式的请求体。也许它只理解application/x-www-form-urlencoded主体,或者您需要以某种方式告诉您的Spring 控制器该请求的格式为application/json?反正我不做Spring,所以无法详细回答。 -
@BalusC 并非如此 - 因为 json 编码工作正常。它将 json 转换为对象失败,并返回一般错误消息。
-
请注意 JSON 编码发生在 JavaScript 代码中,而不是在 Spring 代码中。
标签: java json spring-mvc