将模型从控制器传递到视图

时间:2011-08-15 18:35:17

标签: java json spring-mvc

我有一个html / jsp表单,我正在序列化(使用jquery)并通过ajax传递给spring控制器。实际上,它是一个绑定到属性的spring-mvc形式。

我的第一个问题是:当我通过ajax从表单传递数据时,这种绑定是不相关的?

其次,它绑定的对象是一个相当复杂的hibernate实体对象,我遇到了将json转换为对象实例的问题 - 它引用了其他对象等等,实际上我不知道是什么确切的问题是因为错误信息不是特别清楚:不支持内容类型'application / json'

我应该使用DTO / value对象而不是实体对象,然后根据DTO创建实体对象吗?

或者,如果我追踪实体对象/表单中导致json转换失败的问题字段,这将是耗时且枯燥的,但最终结果在我看来更整洁。

建议欢迎。

修改的: 当简单表单/对象只有几个字符串属性和相关的getter / setter时,它们的转换工作正常。 The controller and javascript code

1 个答案:

答案 0 :(得分:2)

是的,使用DTO。除了避免您遇到的各种ORM问题之外,它还可以让您更轻松地定义您的操作并且不希望您的用户能够更改。例如,如果某人向您发送了一个被黑客攻击的JSON对象,该对象定义了您不希望他们能够修改的属性或关系,该怎么办?您是否准备好对该模型对象上的每个属性执行(并维护)检查以避免此类攻击?