Spring框架验证-整个表单的可选验证?

Spring框架验证-整个表单的可选验证?,spring,validation,spring-mvc,Spring,Validation,Spring Mvc,我有一个基于Spring的web表单(实际上是web流)需要修改 表单有多个在服务器端验证的元素。棘手的是,整个表单都是可选的——如果用户只是点击它,我应该悄悄地忽略整个表单 我该怎么做呢?我假设您使用JSR303 Bean验证。但解决方案很大程度上取决于您所说的“整个表单是可选的”的确切含义 您是说每个值都是独立的可选值:---- 大多数验证规则都设计为接受空值(除非您明确允许空值(@NotNull,@NotEmpty)-也许这对于您的问题就足够了 您的意思是,如果至少设置了一个值,则整个表

我有一个基于Spring的web表单(实际上是web流)需要修改

表单有多个在服务器端验证的元素。棘手的是,整个表单都是可选的——如果用户只是点击它,我应该悄悄地忽略整个表单


我该怎么做呢?

我假设您使用JSR303 Bean验证。但解决方案很大程度上取决于您所说的“整个表单是可选的”的确切含义

  • 您是说每个值都是独立的可选值:---- 大多数验证规则都设计为接受空值(除非您明确允许空值(
    @NotNull
    @NotEmpty
    )-也许这对于您的问题就足够了

  • 您的意思是,如果至少设置了一个值,则整个表单需要有效:---- JSR303 Bean验证知道验证组的概念:只有在请求验证其验证组时,才会验证规则(所有未显式分配的验证规则都属于默认组)。您可以使用此选项为可选值设计验证组,然后仅当至少设置了该组的一个值时才启动该组的显式验证。这可以通过为表单实现自定义DefaultGroupSequenceProvider来完成


在验证过程中不在
null
或空值上添加错误?这是第二个选项。我将检查验证组。谢谢!