SpringBoot 参数校验

一: 一般校验

(0)适用场景:同一字段没有互相矛盾的验证策略

(1) 请求参数

public class ParamsValidForm {

    @NotBlank(message = "用户名不能为空")
    private String userName;

    @NotBlank(message = "密码不能为空")
    @Length(min = 6, message = "密码长度至少6位")
    private String password;

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Override
    public String toString() {
        final StringBuffer sb = new StringBuffer("ParamsValidForm{");
        sb.append("userName='").append(userName).append('\'');
        sb.append(", password='").append(password).append('\'');
        sb.append('}');
        return sb.toString();
    }
}

 

(2)controller层

/**
     * 1. 一般校验
     * 场景:同一字段没有互相矛盾的验证策略
     */
    @PostMapping(value = "valid")
    public ServerResponse valid(@RequestBody @Valid ParamsValidForm paramsValidForm,
                               BindingResult results) {
        if (results.hasErrors()) {
            return ServerResponse.createByErrorMessage(results.getFieldError().getDefaultMessage());
        }
        return ServerResponse.createBySuccess();
    }

 

二: 分组校验

(0)适用场景:相同字段在不同场景需要不同的验证策略

(1)请求参数

public class GroupsValidForm {

    @Null(message = "id必须为null", groups = {GroupVaildDTO.SaveGroup.class})
    @NotNull(message = "id不能为null", groups = {GroupVaildDTO.UpdateGroup.class})
    private Integer id;

    @NotBlank(message = "用户名不能为空")
    private String userName;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    @Override
    public String toString() {
        final StringBuffer sb = new StringBuffer("GroupsValidForm{");
        sb.append("id=").append(id);
        sb.append(", userName='").append(userName).append('\'');
        sb.append('}');
        return sb.toString();
    }
}

 

(2)组接口

public class GroupVaildDTO {

    public interface SaveGroup extends Default {}

    public interface UpdateGroup extends Default {}
}

 

(3)controller层

/**
     * 2. 分组校验
     * 场景:相同字段在不同场景需要不同的验证策略
     */
    @PostMapping(value = "update")
    public ServerResponse update(@RequestBody @Validated(value = GroupVaildDTO.UpdateGroup.class)
                                            GroupsValidForm groupsValidForm, BindingResult results) {
        if (results.hasErrors()) {
            return ServerResponse.createByErrorMessage(results.getFieldError().getDefaultMessage());
        }
        return ServerResponse.createBySuccess();
    }

 

转载于:https://www.cnblogs.com/fdzfd/p/9916256.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值