使用注解对前端返回的Json进行非空验证

1.前端返回的Json串

{
    "studentId":"",
    "studentName":""
}

2.使用Student类来接收属性

private String studentId;
private String studentName;
省略setget方法、、、

3.为了限制studentId和studentName属性不为空

需要在Student类中添加注解,引用的包

//引用的包
import org.hibernate.validator.constraints.NotBlank;

@NotBlank(message = "studentId不能为空!")
private String studentId;
@NotBlank(message = "studentName不能为空!")
private String studentName;
省略setget方法、、、

4.在controller中

需要注意的是@valid的注解和BindingResult,一旦不符合验证的要求就会抛出在Student类中的异常。

@ResponseBody
    @RequestMapping("/update")
    public Object updateStudent(**@Valid** @RequestBody Student student,**BindingResult error**){
        if(error.hasErrors()){
          BusiLogicException.create().init(error.getFieldError().getDefaultMessage()).raise();
        }
        int result = ruleDefineBusiService.updateStudent(ruleDefineModel);
        return result == 1 ? AjaxResultUtil.success() : AjaxResultUtil.fail("操作失败!");
    }

很重要

实际上在studentId上我原来定义的是Long类型,这个时候就得用到下面两个注解。
第一个是将Long类型转变成Json的时候不会缺失数据
第二个是将Json转变成Long,但是总是报错。

@JsonSerialize(using=ToStringSerializer.class)
 @JsonDeserialize(using = NumberDeserializers.LongDeserializer.class)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值