Spring MVC 整合 hibernate-validator
来源:互联网 发布:java软件工程师资格证 编辑:程序博客网 时间:2024/05/14 21:44
1.配置pom.xml
<!-- hibernate-validator --><dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>5.4.1.Final</version></dependency>
2.配置spring-mvc.xml
<!-- validation --><bean class="org.springframework.validation.beanvalidation.MethodValidationPostProcessor"/>
3.建立统一处理
/** * @Author : xiao * @Date : 17/5/10 下午2:56 */@ControllerAdvice@ResponseBodypublic class ExceptionAdvice { private static Logger logger = LoggerFactory.getLogger(ExceptionAdvice.class); /** * 400 - Bad Request */// @ResponseStatus(HttpStatus.BAD_REQUEST) @ExceptionHandler(MethodArgumentNotValidException.class) public String handleMethodArgumentNotValidException(MethodArgumentNotValidException e) { logger.error("参数验证失败", e); BindingResult result = e.getBindingResult(); List<String> resultList = new ArrayList<String>(); for (ObjectError error : result.getAllErrors()) { String code = error.getCode(); String message = error.getDefaultMessage(); String description = String.format("%s:%s", code, message); resultList.add(message); } return new CommonResult().failure(resultList, ResultStatusEnum.PARAMETER_INVALID.getCode(), ResultStatusEnum.PARAMETER_INVALID.getDescription()).toJSON(); }}
4.测试mode
package com.jeiker.boss.model.hello;import org.hibernate.validator.constraints.NotEmpty;import org.hibernate.validator.constraints.Range;/** * @Author : xiao * @Date : 17/5/10 下午2:51 */public class UserVO { /** * Bean Validation 中内置的 constraint * * @Null 被注释的元素必须为 null * @NotNull 被注释的元素必须不为 null * @AssertTrue 被注释的元素必须为 true * @AssertFalse 被注释的元素必须为 false * @Min(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值 * @Max(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值 * @DecimalMin(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值 * @DecimalMax(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值 * @Size(max=, min=) 被注释的元素的大小必须在指定的范围内 * @Digits(integer, fraction) 被注释的元素必须是一个数字,其值必须在可接受的范围内 * @Past 被注释的元素必须是一个过去的日期 * @Future 被注释的元素必须是一个将来的日期 * @Pattern(regex=,flag=) 被注释的元素必须符合指定的正则表达式 * * Hibernate Validator 附加的 constraint * * @NotBlank(message =) 验证字符串非null,且长度必须大于0 * @Email 被注释的元素必须是电子邮箱地址 * @Length(min=,max=) 被注释的字符串的大小必须在指定的范围内 * @NotEmpty 被注释的字符串的必须非空 * @Range(min=,max=,message=) 被注释的元素必须在合适的范围内 */ @NotEmpty(message="姓名不能为空") private String name; @Range(min=20,max=120,message="年龄在20到120岁之间") private int age; @NotEmpty(message="地址不能为空") private String address; ... getter ... setter}
5.测试Controller
@Controller@RequestMapping(value = "/operation/hello")public class HelloController { public static final Logger LOG = LoggerFactory.getLogger(HelloController.class); @RequestMapping(value = "/testValidUser", method = RequestMethod.POST) @ResponseBody public String testValidUser(@RequestBody @Valid UserVO userVO){ return CommonResult.success(userVO).toJSON(); }}
6.测试结果
POST:
http://localhost:8080/operation/hello/testValidUser
{ "name":"", "age":130, "address":""}
结果:
{ "data": [ "年龄在20到120岁之间", "姓名不能为空", "地址不能为空" ], "message": "参数不合法", "status": 11010}
0 0
- Spring MVC 整合 hibernate-validator
- Hibernate validator使用和自定义validator及整合Spring MVC
- Hibernate validator使用和自定义validator及整合Spring MVC
- spring mvc + hibernate 整合
- spring mvc 数据校验 -- hibernate-validator
- Spring mvc+Spring+hibernate整合
- Spring mvc+Spring+hibernate整合
- Spring + Sping MVC +Hibernate 整合
- springMvc 整合hibernate-validator
- Spring Validator和Hibernate Validator
- [Note]Spring MVC、hibernate validator和i18n(一)
- [Note]Spring MVC、hibernate validator和i18n(二)
- [Note]Spring MVC、hibernate validator和i18n(三)
- [Note]Spring MVC、hibernate validator和i18n(四)
- spring MVC中基于hibernate validator的form表单验证
- spring mvc 结合Hibernate Validator进行服务器验证
- spring MVC中基于hibernate validator的form表单验证
- Spring MVC基于hibernate validator的数据验证示例
- linux中动态队列管理机制(AQM):CoDel
- Java中堆和栈的区别
- MYSQL优化建议
- 用户和用户组
- Activity被回收导致Fragment的getActivity为null的解决办法
- Spring MVC 整合 hibernate-validator
- 大数据概念,数据技术分类,ETL
- could not extract ResultSet
- PoEdu_Windows_Lesson02_数据类型和字符编码
- Android 出现错误:Error:(1, 0) Minimum supported Gradle version is 3.3. Current version is 2.14.1. If usi
- HTML+CSS+JS+Ajax技巧篇
- leetcode reorderList Given{1,2,3,4}, reorder it to{1,4,2,3}.
- 论初次修改 Android framework 代码
- Java-java中jvm原理详解