1

我有Product案例类,由 DAO 层返回(使用 Salat)。第一次创建产品的用户状态保持为“草稿”,其中没有(产品)字段是强制性的。

验证 10 个产品属性、将所有验证错误累积到一个实体中然后以 JSON 格式一次将所有错误传递到前端的最佳功能方法是什么?

4

2 回答 2

3

我认为问题的核心是如何累积错误——JSON 格式是一个单独的问题,并不取决于您如何收集错误。

如果真的只是验证问题,可以有一系列方法

def problemWithX: Option[String] = ...

Some(errorMessage)如果它们无效或正常,则返回None。然后就这么简单

List(problemWithX, problemWithY, ...).flatten

创建所有错误的列表。如果您的列表是空的,那么您就可以开始了。如果没有,则列出了错误。创建一些合理的错误报告是该problemWithX方法的工作——当然您需要决定是否只需要一个字符串或更复杂的信息。(您甚至可能需要定义一个Invalid特征并让类对其进行扩展以处理不同的条件。)

于 2013-02-16T15:35:56.933 回答
1

这正是 ScalaZ 的Validation类型的用途。

于 2013-02-16T17:23:51.260 回答