Spring Boot 参数类型转换
🎈博客主页:🌈我的主页🌈
🎈欢迎点赞 👍 收藏 🌟留言 📝 欢迎讨论!👏
🎈本文由 【泠青沼~】 原创,首发于 CSDN🚩🚩🚩
🎈由于博主是在学小白一枚,难免会有错误,有任何问题欢迎评论区留言指出,感激不尽!🌠个人主页
我们发现在Controller中定义Post方法需要传递接收一个对象类型的数据,会出现状态码出现400的问题,根本原因在于传递的Key/Value值使用的String类型的数据,我们对象类型中则接收的是其他类型的数据
🌟 一、前提
User 类:
public class User {
private String name;
private Date birthday;
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", birthday=" + birthday +
'}';
}
}
Controller类:
@PostMapping("/user1")
public void getUser(User user){
System.out.println("user = " + user);
}
🌟 二、参数类型转换
🌟🌟 2.1、自定义类型转换器
@Component
public class UsreConverse implements Converter<String, Date> {
@Override
public Date convert(String source) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
try {
return format.parse(source);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
}
🌟🌟 2.2、采用RequestBody用json传值
@PostMapping("/user2")
public void getUser2(@RequestBody User user){
System.out.println("user = " + user);
}
🌟 三、总结
- Post 请求参数可以是Key/Value形式,也可以是Json形式
- 自定义类型转换器,只对Key/Value形式的参数有效
- Json形式的参数不需要类型转换器,JSON字符串是通过HttpMessageConverter转换为其他类型的对象
关于HttpMessageConverter可以参考Web三大主流JSON框架
版权声明:本文为m0_46635265原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。