您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何使用SpringMVC @Valid来验证POST中的字段,而不能验证PUT中的空字段

如何使用SpringMVC @Valid来验证POST中的字段,而不能验证PUT中的空字段

您可以将验证组与Spring org.springframework.validation.annotation.Validated批注一起使用。

产品.java

class Product {
  /* Marker interface for grouping validations to be applied at the time of creating a (new) product. */
  interface ProductCreation{}
  /* Marker interface for grouping validations to be applied at the time of updating a (existing) product. */
  interface ProductUpdate{}

  @NotNull(groups = { ProductCreation.class, ProductUpdate.class })
  private String code;

  @NotNull(groups = { ProductCreation.class, ProductUpdate.class })
  private String name;

  @NotNull(groups = { ProductCreation.class, ProductUpdate.class })
  private BigDecimal price;

  @NotNull(groups = { ProductUpdate.class })
  private long quantity = 0;
}

ProductController.java

@RestController
@RequestMapping("/products")
class ProductController {
  @RequestMapping(method = RequestMethod.POST)
  public Product create(@Validated(Product.ProductCreation.class) @RequestBody Product product) { ... }

  @RequestMapping(method = RequestMethod.PUT)
  public Product update(@Validated(Product.ProductUpdate.class) @RequestBody Product product) { ... }
}

有了这个代码后,Product.codeProduct.nameProduct.price会在创建和更新的时间来验证。Product.quantity,但是仅在更新时进行验证。

Java 2022/1/1 18:14:45 有454人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶