将表单发送到服务

时间:2015-05-28 07:18:15

标签: java spring

我有一个名为AddNewItemForm的Spring表单,其中包含验证注释。

此表单是我的Spring RestController addNewItem()方法的参数,它将被验证,结果存储在BindingResults中。

从我的控制器我需要调用该服务。这是我的问题。使用此签名

在我的服务中有一个方法是否可以
public Item add(AddNewItemForm form)

或者像

一样更好
public Item add(Item item)

我认为只有控制器验证需要表单,但服务不需要知道它。它只需要知道如何操作实体。

我想我应该在控制器中构建我的Item,包含我拥有的所有数据,然后将此项传递给服务add(item)方法。

我是对的吗?

2 个答案:

答案 0 :(得分:1)

从我的角度来看,服务不应该知道你的命令对象(AddNewItemForm),因为它们是完全独立的。

我同意你的上一个建议,你必须在调用你的服务之前构建你的模型对象。基本上在您的控制器中或在实用程序类的帮助下。

答案 1 :(得分:1)

从依赖性的角度考虑:您的Web层始终需要了解您的服务模块,并将AddNewItemForm(我假设存在于您的Web模块/包中)传递回您的服务,您现在具有循环依赖性。

依赖关系应该只向下流动:

存储库>服务>网络