1
3
正如在另一篇文章的一个答案中提到的,如果要保持层的分离,没有好的方法可以避免在每个层中重复验证逻辑。如果你使用一些东西来自动地将它们连接在一起,那么你已经在层之间引入了一种耦合,这种耦合可能会阻碍你前进。这可能是其中一种情况,您只需手动跟踪事情。 不管怎么做,都必须确保每个层都在进行自己的验证,因为您永远不知道如何访问该层。无法保证您实现的所有层始终保持在一起。 |
2
1
我喜欢使用验证服务,它不一定关心要验证的数据的来源。当您谈到将验证规则传输到客户端(即web页面)时,这可以以几种不同的方式工作,但我觉得这最重要的方面是对实际的验证规则拥有单一的权限。 例如,如果您的数据核心实体上有验证逻辑,比如通过验证方法检查的validationrule对象集合(这是一个非常典型的场景),那么我将通过转换将这些相同的规则提升到客户端(javascript)。 在asp.net世界(我唯一能和之交谈的)有两种方法可以做到这一点。我的首选方法是创建自定义验证器,将ui小部件绑定到实体上的字段(及其所有验证规则)。这样做的好处是,您的所有验证逻辑都可以绑定到单个验证程序中。缺点是验证消息将变得密集,因为验证规则都是一次测试的。当然,这可以通过让您的验证逻辑只返回第一个失败的消息来缓解,等等。 这个答案可能听起来有些模糊和不具体,但我想说的两点是:
|
3
1
某些框架提供了验证支持,可以使客户端和服务器验证保持同步。看看这个 Seam validation tutorial 使用注释。这是一个很好的实现,而且很容易理解。 无论如何,如果你不想依赖框架,我认为实现类似的东西是很容易的。 |
4
0
如果您使用的是ASP.NET,则可以使用许多验证控件。这些控件是以非常通用的方式编写的,因此大多数控件都会自动在客户端和服务器之间复制验证逻辑,即使您只在一个位置设置控件的选项。 您还可以从它们继承来创建其他特定于域的验证器,并且在web上有第三方控件包,您可以将其添加到基本控件中。 即使你不使用asp.net,也值得看看这是如何做到的。它将为您提供如何在自己的平台上做类似事情的想法。 |
kaiselwyvrn · 我无法打开Visual Studio项目 1 年前 |
4SadMemeXD · 无法在Django中选择相关类别 2 年前 |
Agrim Singh · 用户数据。名称未显示用户名 2 年前 |
Peloucvo · 用数据库中的数据填充JTable 2 年前 |
Montaser Majid · 用于从多行中提取单行的SQL查询 2 年前 |
Max J. · 用整数作为键将dict写入csv 2 年前 |