java开发

技术学习笔记

spring boot http参数验证

引入验证依赖包

 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
        </dependency> 

POST参数验证

User实体

public class User {
    @NotNull(message = "id 不能空")
    @Min(value = 0,message = "id 不小于0")
    private int id;
    @NotNull(message = "name 不能为空")
    private String name;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}
 

 @RequestMapping(value = "/save",method = RequestMethod.POST)
    public String save(@Validated  User user,BindingResult bindingResult){
        paramError(bindingResult);
        return "save"+user.getName();
    }
    public void paramError(BindingResult bindingResult){
        if (bindingResult.hasErrors()) {
            String error = bindingResult.getFieldError().getDefaultMessage();
            throw new RuntimeException(error);
        }
    } 
GET参数验证
@RequestParam(value = "id",defaultValue = "0") int id 
 类上加上注解@Validated

然后使用POST相同的验证方法    
public String show(@Min(value = 1,message = "不能小于1") int id){
        return "show";
    } 


这里我们主要介绍在springboot中的几种参数校验方式。常用的用于参数校验的注解如下:



@AssertFalse 所注解的元素必须是Boolean类型,且值为false

@AssertTrue 所注解的元素必须是Boolean类型,且值为true

@DecimalMax 所注解的元素必须是数字,且值小于等于给定的值

@DecimalMin 所注解的元素必须是数字,且值大于等于给定的值

@Digits 所注解的元素必须是数字,且值必须是指定的位数

@Future 所注解的元素必须是将来某个日期

@Max 所注解的元素必须是数字,且值小于等于给定的值

@Min 所注解的元素必须是数字,且值小于等于给定的值

@Range 所注解的元素需在指定范围区间内

@NotNull 所注解的元素值不能为null

@NotBlank 所注解的元素值有内容

@Null 所注解的元素值为null

@Past 所注解的元素必须是某个过去的日期

@PastOrPresent 所注解的元素必须是过去某个或现在日期

@Pattern 所注解的元素必须满足给定的正则表达式

@Size 所注解的元素必须是String、集合或数组,且长度大小需保证在给定范围之内

@Email 所注解的元素需满足Email格式

发表评论:

Powered By Z-BlogPHP 1.7.1

唐云飞个人日记