0
点赞
收藏
分享

微信扫一扫

JSR303 数据检验

天天天蓝loveyou 2022-03-30 阅读 42
java

JSR 是 Java Specification Requests 的缩写,即 Java 规范提案。
存在各种各样的 JSR,简单的理解为 JSR 是一种 Java 标准。
JSR 303 就是数据检验的一个标准(Bean Validation (JSR 303))。

配置

pom

<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-validation -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-validation</artifactId>
    <version>2.3.2.RELEASE</version>
</dependency>

使用

  • 在实体类标上对应注解
@Data
@TableName("pms_brand")
public class BrandEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * 品牌id
	 */
	@TableId
	private Long brandId;
	/**
	 * 品牌名
	 */
	@NotEmpty
	private String name;
	/**
	 * 品牌logo地址
	 */
	@URL
	private String logo;
	/**
	 * 介绍
	 */
	@NotEmpty
	private String descript;
	/**
	 * 显示状态[0-不显示;1-显示]
	 */
	@NotNull
	private Integer showStatus;
	/**
	 * 检索首字母
	 */
	@NotEmpty
	@Pattern(regexp = "^[a-zA-Z]$",message = "检索首字母必须为英文字母")
	private String firstLetter;
	/**
	 * 排序
	 */
	@NotNull
	@Min(value = 0,message = "必须大于0")
	private Integer sort;
}
  • controller层标上@Valid注解,并可通过BindingResult参数获得验证失败的详细信息
@RequestMapping("/save")
    //@RequiresPermissions("gulimallproduct:brand:save")
    public R save(@Valid @RequestBody BrandEntity brand, BindingResult result){
        if (result.hasErrors()){
            Map<String,String> map = new HashMap<>();
            result.getFieldErrors().forEach((fieldError -> {
                map.put(fieldError.getField(),fieldError.getDefaultMessage());
            }));
            return R.error(400,"表单信息不合法!").put("data",map);
        }
		brandService.save(brand);
        return R.ok();
    }
举报

相关推荐

0 条评论