这里面我们简单的学习一下springboot中关于数据格式化的使用。冬天花败,春暖花开,有人离去,有人归来。

springboot中的校验器

我们的测试环境是springboot,对请求的person数据先做转换再校验。

一、我们定义的实体Bean类Person

package com.linux.huhx.learn.converter;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable; /**
* @Author: huhx
* @Date: 2017-12-15 下午 3:30
* @Desc: 实体类
*/
public class Person implements Serializable {
@NotNull(message = "用户名不能为空")
@Size(min = 3, message = "用户名的长度小于3位")
private String username;
private String password; @Min(value = 18, message = "用户的年龄不能小于18")
private int age; public Person(String username, String password, int age) {
this.username = username;
this.password = password;
this.age = age;
} // ..get set
}

二、我们的检验控制器类

package com.linux.huhx.learn.converter;

import com.linux.huhx.exception.MaxRunTimeException;
import org.springframework.validation.BindingResult;
import org.springframework.validation.ObjectError;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import javax.validation.Valid; /**
* @Author: huhx
* @Date: 2017-12-15 下午 3:46
* @Desc: 测试springboot中自定义类型转换器
*/ @RestController
@RequestMapping("/converter")
public class PersonConverterAction { @PostMapping("/person")
public Person convertrStringToPerson(@Valid Person person, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
for (ObjectError error : bindingResult.getAllErrors()) {
throw new MaxRunTimeException(error.getDefaultMessage());
}
}
return person;
}
}

通过postman发送post的请求:http://localhost:9998/converter/person。

返回的数据:

{
"timestamp": ,
"status": ,
"error": "Internal Server Error",
"exception": "com.linux.huhx.exception.MaxRunTimeException",
"message": "用户的年龄不能小于18",
"path": "/converter/person"
}

友情链接

最新文章

  1. 【iOS】彩色TabBar切换动画实现
  2. GoLang之网络
  3. [已解决]EnvironmentError: mysql_config not found
  4. rm 注意
  5. (转)Android获取手机信息
  6. NFS(网络文件系统的搭建)
  7. 理解ROS的参数
  8. Git安装及基本使用
  9. Windows Phone开发(25):启动器与选择器之WebBrowserTask
  10. 怎么给当前点击的a标签添加一个样式(跳转页面后)
  11. RedHat 7 常用命令总结
  12. LNMP安装目录及配置文件位置
  13. 使用getline输入一行字符串
  14. hadoop集群完全分布式搭建
  15. vue+vux scrollTop无法实现定位到具体dom
  16. 【Android】录音-amr音频录制
  17. Linux命令详解-help
  18. java基础之while循环练习(2)
  19. 20155207王雪纯 《Java程序设计》实验三 敏捷开发与XP实践 实验报告
  20. redis 安装与php扩展

热门文章

  1. oracle for update和for update nowait的区别 - 转
  2. Eclipse/MyEclipse上配置Spring环境
  3. JSON数组,JSON对象,数组的区别与基本操作整理
  4. 183使用 MediaPlayer Framework 框架播放视频
  5. LR进行接口测试
  6. Go中error类型的nil值和nil
  7. MAC下Android的Eclipse开发环境的搭建 转自MacroCheng
  8. ajax之cache血与泪~~
  9. Java使用选择排序法对数组排序
  10. 奔五的人学ios:swift竟然没有字符串包括,找个简单的解决方法