zoukankan      html  css  js  c++  java
  • Spring Boot 系列教程19-后台验证-Hibernate Validation

    后台验证

    • 开发项目过程中,后台在很多地方需要进行校验操作,比如:前台表单提交,调用系统接口,数据传输等。而现在多数项目都采用MVC分层式设计,每层都需要进行相应地校验。
    • 针对这个问题, JCP 出台一个 JSR 303-Bean Validation规范 ,而Hibernate Validator 作为Bean Validation的参考实现,提供了JSR 303规范中所有内置constraint的实现,除此之外还有一些附加的constraint。
    • Hibernate Validation的使用非常简单,只用在相应的实体类中加上注解,再调用对应的校验API方法即可。

    验证效果

    这里写图片描述

    pom.xml

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator</artifactId>
    </dependency>

    User

    import javax.validation.constraints.Max;
    import javax.validation.constraints.Min;
    import javax.validation.constraints.Size;
    
      @Id
      @GeneratedValue
      private Long id;
      @Size(min = 5, max = 30)
      private String name;
      @Min(18)
      @Max(60)
      private Integer age;

    CommonExceptionAdvice

    /**
       * 400 - Bad Request
       */
      @ResponseStatus(HttpStatus.BAD_REQUEST)
      @ExceptionHandler(ConstraintViolationException.class)
      public AjaxResult handleServiceException(ConstraintViolationException e) {
        logger.error("参数验证失败", e);
        Set<ConstraintViolation<?>> violations = e.getConstraintViolations();
        ConstraintViolation<?> violation = violations.iterator().next();
        String message = violation.getMessage();
        return new AjaxResult().failure("parameter:" + message);
      }
      /**
       * 500 - Internal Server Error
       */
      @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
      @ExceptionHandler(Exception.class)
      public AjaxResult handleException(Exception e) {
        logger.error("通用异常", e);
        return new AjaxResult().failure("通用异常:" + e.getMessage());
      }

    user.jsp

    <table align="center">
        <tr>
            <td>名称:</td>
            <td><input class='easyui-textbox' type='text' name='name'></input></td>
        </tr>
        <tr>
            <td>年龄:</td>
            <td><input class='easyui-numberbox'  type='text' name='age'></input></td>
        </tr>
    </table>

    其他关联项目

    源码地址

    https://github.com/je-ge/spring-boot

    如果觉得我的文章或者代码对您有帮助,可以请我喝杯咖啡。您的支持将鼓励我继续创作!谢谢!
    微信打赏
    支付宝打赏

  • 相关阅读:
    Leetcode 16.25 LRU缓存 哈希表与双向链表的组合
    Leetcode437 路径总和 III 双递归与前缀和
    leetcode 0404 二叉树检查平衡性 DFS
    Leetcode 1219 黄金矿工 暴力回溯
    Leetcode1218 最长定差子序列 哈希表优化DP
    Leetcode 91 解码方法
    Leetcode 129 求根到叶子节点数字之和 DFS优化
    Leetcode 125 验证回文串 双指针
    Docker安装Mysql记录
    vmware虚拟机---Liunx配置静态IP
  • 原文地址:https://www.cnblogs.com/je-ge/p/6287016.html
Copyright © 2011-2022 走看看