如果我们在Spring MVC中具有复杂的模型,并且想要将表单字段绑定到它们,我们可以使用具有简单属性的DTO对象(与html表单上的属性匹配),然后根据该DTO中的数据构建实际的模型对象;或者我们可以使用@InitBinder
方法,这些方法不仅使我们能够将表单字段绑定(转换)到复杂的对象,还使我们能够设置自定义验证器,等等。
在我看来,不鼓励使用DTO:
Java Enterprise社区中最被滥用的模式是DTO。 DTO被明确定义为分配问题的解决方案。 DTO 本来是一个粗粒度的数据容器,可以有效地 在流程(层)之间传输数据。 ~ Adam Bien
通常在远程接口外部错误地使用此模式。 这引起了作者的重申。 DTO的全部目的是将数据转移到昂贵的远程 电话。 Wikipedia
那么我们应该一直使用@InitBinder
吗?