java后端添加校验操作

新增实体时,有时需要前端传入的实体的一些字段不能为空,虽然检测必填字段是否为空,这一工作一般由前端完成,但是后端也必须校验:

 

1.在实体类上添加注解:

 有三种注解:分别对应不同的字段类型:

    @NotNull    验证对象是否不为null, 无法查检长度为0的字符串
    @NotBlank 检查约束 (字符串) 是不是Null还有被Trim的长度是否大于0,只对字符串,且会去掉前后空格.
    @NotEmpty 检查(集合)约束元素是否为NULL或者是EMPTY.

验证时间格式:

    @Future(  message = "开始时间必须是一个将来的日期")
    @NotNull (message = "开始时间不能为空")
    private Date startTime;
     @NotNull(message = "文章展示方式不能为空")
     private Integer style;

    @NotEmpty(message = "地址不能为空")
    private List<String> addressID;

    @NotBlank(message = "备注不能为空")
    private String comment;

2.controller层:

由于前端传入的是实体,所以使用@RequestBody 注解让其传入json格式【后端接收实体时,一般都用@RequestBody 】,注意 :

@RequestBody 不能和 @GetMapping 连用, 一般是和@PostMapping连用

检测:  注意:BindingResult result 要用 ,getErrors是自定义方法

   

AjaxResult 是响应式返回结果:一般都是由 code ,msg,data 这三者构成,很多公司都是类似的,只是名字不同

 

    @PostMapping("/createArticle")
    @ResponseBody
    public AjaxResult createArticle(@RequestBody @Valid CreatexxVo vo, BindingResult result ) {

        if (result.hasErrors()){
            Map<String,String> errorMap=rdArticleService.getErrors(result);
            return AjaxResult.error("创建失败,一些必填字段不能为空",errorMap);
        }
        int res=rdArticleService.createxx(vo);
        if (res>0){
            return AjaxResult.success("添加成功");
        }else {
            return AjaxResult.error("添加失败");
        }

    }

 

3. service 层: 通用,对所有实体都适用

    @Override
    /**
     * @Author:  liup
     * @date:  2021/4/30
    方法实现说明:  该方法是配合 create接口 使用,目的是:在判断前端传入的字段哪些违背了不能为空的要求,返回信息给前端
     */
    public Map<String, String> getErrors(BindingResult result) {
        Map<String, String> map = new HashMap<>();
        List<FieldError> errorList = result.getFieldErrors();
        for (FieldError error : errorList) {
            // 发生验证错误所对应的某一个属性
            String errorField = error.getField();
            // 验证错误的信息
            String errorMsg = error.getDefaultMessage();

            map.put(errorField, errorMsg);
        }
        return map;
    }

 

4.结果: 有提示信息

 

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值