zoukankan      html  css  js  c++  java
  • springboot使用validation 插件做数据校验

    不多说废话。

    首先,我们需要在入参实体对象中,使用注解,控制

    @Data
    public class UpdateShufflingRequest {
    private String shuffling_logo;
    private Integer shuffling_state;//是否轮播,0否,1是
    private String shuffling_no;//轮播图编号
    @NotEmpty(message="小区id不允许空")
    private String community_id;
    private Integer order_seq;
    }

    然后在controller中
    需要在入参实体对象前 加@Validated,通知容器需要对这些参数做校验
    BindingResult  是Validation插件中的类
    当校验不通过的时候,具体的响应信息会都在其中,假如我们队这些信息不做处理,返回前端的内容会多而杂。因此我们需要封装一下
    @RequestMapping("/updateShuffling")
    public CommonResponse updateShuffling(@Validated UpdateShufflingRequest updateShufflingRequest, BindingResult result){
    log.info( "updateShuffling start{}",JSONObject.toJSONString( updateShufflingRequest ) );
    if(result.hasErrors()) {
    //数据校验
    ErrValid errValid=ValidUtils.getErrorMsg( result );
    return ResponseUtil.failed( errValid.getCode(), errValid.getErrMsg() );
    }
    //......其他主体逻辑
    return ResponseUtil.success( "", "成功" );
    }

    public static ErrValid getErrorMsg(BindingResult result){
    StringBuffer msg = new StringBuffer();
    //获取错误字段集合
    List<FieldError> fieldErrors = result.getFieldErrors();
    //遍历错误字段获取错误消息
    for (FieldError fieldError : fieldErrors) {
    //获取错误信息
    //添加到错误消息集合内
    msg.append(fieldError.getField()+":"+fieldError.getDefaultMessage()+",");
    }
    String errMsg = msg.toString();
    ErrValid errValid = new ErrValid();
    errValid.setCode( 99999 );
    errValid.setErrMsg( errMsg.substring( 0,errMsg.length()-1 ) );
    return errValid;
    }

     至此,完成

    参考:https://ciweigg2.github.io/2018/08/05/springboot-qing-song-gao-ding-shu-ju-yan-zheng/

  • 相关阅读:
    878. 第 N 个神奇数字
    Leetcode 239. 滑动窗口最大值
    欢天喜地七仙女——Beta冲刺三
    欢天喜地七仙女——Beta冲刺二
    欢天喜地七仙女——Beta冲刺一
    欢天喜地七仙女——Beta冲刺凡事预则立
    欢天喜地七仙女——Beta冲刺代码规范与计划
    欢天喜地七仙女Alpha总结展望——前事不忘后事之师
    欢天喜地七仙女——Alpha测试随笔
    欢天喜地七仙女——Alpha冲刺总结
  • 原文地址:https://www.cnblogs.com/memoa/p/10374412.html
Copyright © 2011-2022 走看看