Spring Boot 菜鸟教程 19 后台验证 Hibernate Validation

来源:互联网 发布:xp无法连接网络打印机 编辑:程序博客网 时间:2024/05/21 09:29

GitHub

后台验证

  • 开发项目过程中,后台在很多地方需要进行校验操作,比如:前台表单提交,调用系统接口,数据传输等。而现在多数项目都采用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>

其他关联项目

  • Spring Boot 菜鸟教程 7 EasyUI-datagrid
    http://blog.csdn.net/je_ge/article/details/53365189

源码地址

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

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

0 0
原创粉丝点击