我有一个基于Spring的Web表单(实际上是Web Flow),我需要修改它。
表单有多个经过验证的服务器端元素。棘手的部分是,整个表单是可选的 - 如果用户只是点击它,我应该静静地忽略整个事情。
我该怎么做?
答案 0 :(得分:1)
我假设您使用JSR303 Bean验证。但是解决方案很大程度上取决于“整个表格是可选的”,
你的意思是每个值都是独立的可选:----
大多数验证规则旨在接受Null值(除非您明确允许Null(@NotNull
,@NotEmpty
) - 这可能足以满足您的需求。
你的意思是如果设置了至少一个值,整个表单必须是有效的:---- JSR303 Bean Validation知道验证组的概念:只有在请求验证其验证组时才会验证规则(所有未明确分配的验证规则都属于默认组)。您可以使用此选项为可选值设计验证组,然后仅在设置了至少一个值时才启动此组的valdation。这可以通过为表单实现自定义DefaultGroupSequenceProvider来完成。 5.4.2. @GroupSequenceProvider