Skip to main content
 首页 » 编程设计

条件约束的 Spring 验证

2024年11月24日4dflying

请告诉我 spring 验证和/或 jsr hibernate 验证器是否支持。

我需要在 Controller 中连接 bean 验证,最好使用参数的 @valid 注释。

  1. 在我们的 bean 中,我有带有静态约束的属性,例如范围约束等。
  2. 对于某些属性[例如,id,name],我需要条件约束,例如,如果来自客户端的请求是 'create' ,则 id 应该为 null 并且 name 不能为空。 如果请求是更新/删除,我需要 id 不为空,并且名称不相关。

对于静态约束,我的 spring+hibernate 验证器工作正常。 但是,有没有办法实现条件约束呢?

谢谢

请您参考如下方法:

使用@ConstraintValidator注释这是可能的,并且不要在这两个字段中放置任何类级别注释,因为它们将始终适用。

参见here地址约束验证器的示例,以及有关 official doc 的更多信息.